javascript - 交换机内的回调

标签 javascript callback

我正在尝试弄清楚如何等到所有指定的函数完成后再调用不同的函数。现在我有一些类似的东西:

for (i = 0; i < valueArray.length; i++){
    SwitchCall(valueArray[i]);
}

function SwitchCall(value){
    switch(value){
        case 1: FunctionOne(); break;
        case 2: FunctionTwo(); break;
        case 3: FunctionThree(); break;
    }
}

SomeOtherFunction()

其中 valueArray 是包含 {1,2,3} 的某个子集的数组。我需要在调用 SomeOtherFunction 之前完成数组中指定的所有函数。我想我需要在这三个函数中添加某种回调,但我无法在这些回调中调用 SomeOtherFunction 因为我可能需要先完成其他函数。我如何等待所有这些功能完成后再继续?

最佳答案

您可以将 Promise 与 jQuery Deferred 一起使用

var async1 = FunctionOne();
var async2 = FunctionTwo();
var async3 = FunctionThree();

$.when(async1, async2, async3).done(function(async1, async2, async3) {
  //When all done!
  SomeOtherFunction()
});

http://www.htmlgoodies.com/beyond/javascript/making-promises-with-jquery-deferred.html

关于javascript - 交换机内的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40110961/

相关文章:

javascript - JS创建的按钮稍后访问时未定义

javascript - 如果我的 JavaScript 函数返回 false,我该如何阻止表单操作?

javascript - 在javascript函数中返回未定义的值

php - 我可以使用私有(private)实例方法作为回调吗?

JavaScript ajax请求servlet调用错误回调函数

javascript - 为什么回调总是作为最后一个参数传递 JavaScript

c - C 中的互连结构和回调

javascript - 无法让 Jquery 将函数的输出写入 html

javascript - 如何更改以 javascript/css 中的特定字符开头的行的颜色?

javascript - 使用外部服务器上的 jsonp-PHP 文件进行 SQL 查询的跨域 Ajax 获取请求