-1

考虑给定的代码

function foo() {
    var bar = [];
    asyncRequest.get(function(data) {
        bar = data;
    });

    return bar;
}

当 bar 填充了来自回调的数据而不是之前的数据时,你如何返回它?在 50% 的情况下,较早到达返回,然后回调完成并返回空数组。

4

1 回答 1

2

当 bar 填充了来自回调的数据而不是之前的数据时,你如何返回它?

你不能。相反,让函数接受它调用的回调结果:

function foo(callback) {
    asyncRequest.get(function(data) {
        // (More stuff here, presumably)
        callback(data);
    });
}

或者,如果它真的只是一个传递(我没有写过“(这里有更多东西,大概)”),那么:

function foo(callback) {
    asyncRequest.get(callback);
}
于 2013-11-12T11:31:13.070 回答