Javascript事件死锁?

时间:2018-04-03 07:38:48

标签: javascript javascript-events

我有两个事件绑定到同一个点击事件。

button.addEventListener('click', uploadFile);
button.addEventListener('click', showProgress);

在uploadFile方法中有这样的代码:

$("#menu2").show() //called after get response from server

在showProgress方法中有这样的代码:

while(!$("#menu2").is(":visible")) {
}            // thie is a infinite loop until menu2 show up.

我无法在这里找出任何问题,但我的浏览器崩溃了。

有什么方法可以解决这个问题吗?

或者还有其他方法可以做到这一点,我想做一些事情,直到另一个完成。

在此先感谢,感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

也许你可以在异步库中使用async.series函数。

  

series(tasks, callbackopt)
  在系列中运行任务集合中的函数,每个函数都在运行   一旦上一个功能完成。

async.series([
        function(callback) {
            // do some stuff ...
            callback(null, 'one');
        },
        function(callback) {
            // do some more stuff ...
            callback(null, 'two');
        }
    ],
    // optional callback
    function(err, results) {
        // results is now equal to ['one', 'two']
    });