gpt4 book ai didi

javascript - 不阻塞的回调

转载 作者:行者123 更新时间:2023-12-03 12:57:01 25 4
gpt4 key购买 nike

我想编写一个接受回调并在函数完成后调用它的函数。

这很简单:

var callback = function (ref) {
var i = 1337;
while (i--) {
console.log(ref, 'callback');
}
};

var someFoo = function (ref, callback) {
console.log(ref, 'self');

callback(ref);
}

someFoo('one', callback); // 1
someFoo('two', callback); // 2

但在这里我遇到了这个问题:首先 someFoo 调用阻塞,直到 allback 完成。这意味着此代码等同于此(在每个函数完成之前阻塞):

someFoo('one');
callback('one');
someFoo('two');
callback('two');

现在的问题是:如何使回调调用异步?

最佳答案

改变:

callback(ref);

收件人:

setTimeout(function(){ callback(ref); }, 0);

或者,由于您正在编写 chrome 扩展程序,因此不必担心较旧的浏览器,您可以使用 bind :

setTimeout(callback.bind(null, ref), 0);

关于javascript - 不阻塞的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17750411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com