这是在旧版本节点中避免回调地狱的可接受方法吗?
Is this an acceptable method of avoiding callback hell in old versions of node?
没有承诺,没有异步等我想知道这种模式是否可以接受 - 我的函数被调用并且我收到了一个回调。我需要做两件事才能回电:
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();
}
}
}
我想问题是关于变量范围的——多个 "concurrent" 执行是否会干扰彼此的 done1 和 done2 值,或者每个调用是否有自己的变量范围?
是的,这个模式很好。它基本上做了 Promise.all
今天所做的事情,只是它只适用于两个异步回调,而不是可变数量。
Can multiple "concurrent" executions interfere with each other's values for done1
and done2
, or does each call get its own variable scope?
每次调用 doSomething
都会创建一个包含新 done1
和 done2
变量的新作用域。
没有承诺,没有异步等我想知道这种模式是否可以接受 - 我的函数被调用并且我收到了一个回调。我需要做两件事才能回电:
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();
}
}
}
我想问题是关于变量范围的——多个 "concurrent" 执行是否会干扰彼此的 done1 和 done2 值,或者每个调用是否有自己的变量范围?
是的,这个模式很好。它基本上做了 Promise.all
今天所做的事情,只是它只适用于两个异步回调,而不是可变数量。
Can multiple "concurrent" executions interfere with each other's values for
done1
anddone2
, or does each call get its own variable scope?
每次调用 doSomething
都会创建一个包含新 done1
和 done2
变量的新作用域。