繁体   English   中英

用JavaScript进行多个异步函数调用的绝佳方式

[英]Elegant way for multiple asynchronous function calls in Javascript

我需要多次调用同一个异步函数,但是直到一次调用完成(即执行回调函数时)。 所以我的代码看起来像这样:

syncFunc(a, function() {
    syncFunc(b, function() {
        syncFunc(c, function() {
            syncFunc(.....)
        });
    });
});

现在有可能以某种方式缩短此时间吗? 我的第一个想法是使用for循环,例如:

syncParams = [a, b, c, ...];
for(var i = 0;; i++) {
    syncFunc(syncParams[i], function() {
        if(i < syncParams.length - 1) {
            alert('finished');
            break;
        } else {
            continue;
        }
    }
}

但是显然这是行不通的,因为没有连接继续和中断循环。 我的另一个想法是使用间隔检查每秒是否完成了一个异步调用,然后使用下一个参数调用下一个,但这似乎太复杂了。 有没有使用某些库的简单方法?

编辑 :因为没有人能理解库问题:我正在开发PhoneGap移动应用程序,并且我正在使用IDE进行开发,所以加入第三方库并不是很高兴。 我也很好奇这将如何工作。

我看到您想每次使用不同的参数调用该函数。 那么async.forEachSeries将是最合适的。

如果您想每次使用相同的参数调用该函数,则async.whilst会很好地工作。 https://github.com/caolan/async/#whilsttest-fn-callback

@Jack提到了这个问题,您可以自己做一个很好的答案: 如何同步JavaScript回调?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM