异步回调后返回

时间:2013-11-12 11:25:16

标签: javascript asynchronous callback return

考虑给定代码

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

    return bar;
}

如果在回调中填充数据而不是之前,你如何返回bar?在50%的情况下,返回先前达到,然后回调结束并返回空数组。

1 个答案:

答案 0 :(得分:2)

  

如果在回调中填充了数据而不是之前的回复,那么你怎么回事?

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

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

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

function foo(callback) {
    asyncRequest.get(callback);
}