这是避免旧版本节点中回调地狱的可接受方法吗?



没有承诺,没有异步等 我想知道这种模式是否可以接受 - 我的函数被调用并且我被传递回调。我需要做两件事才能回拨:

function doSomething(..args.., callbackThatNeeds1And2DoneFirst){
var done1 = false;
var res1 = someAsync1(function call1callback(){ 
//blah
done1 = true;
maybeComplete();
});
var done2 = false;
var res2 = someAsync2(function call2callback(){ 
//blah
done2 = true;
maybeComplete();
});
function maybeComplete(){
if(done1 && done2){
callbackThatNeeds1And2DoneFirst();
}
}
}

我想问题是关于变量作用域的 - 多个"并发"执行是否会干扰彼此的 done1 和 done2 值,或者每个调用都有自己的变量作用域?

是的,这种模式很好。它基本上做了Promise.all今天所做的,除了它只适用于两个异步回调而不是可变量。

多个"并发"执行是否会干扰彼此的done1done2值,或者每个调用都有自己的变量作用域?

每次调用doSomething都会创建一个具有新done1done2变量的新作用域。

相关内容

最新更新