异步回调后返回

Return after Asynchronous callback

本文关键字:返回 回调 异步      更新时间:2023-09-26

考虑给定的代码

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

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

当柱线充满来自回调而不是之前的数据时,你如何返回它?

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

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

或者,如果它真的只是一个传递(我写过"(这里可能有更多东西)"的地方没有),那么:

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