在 nodejs 中,我有一个昂贵的功能,例如:
function expensiveCode(){
a.doExensiveOperation(1);
b.doAnotherExensiveOperation(2);
c.doADiffererentExensiveOperation(3);
d.doExensiveOperation(4);
}
这样每个子函数调用都有不同的参数,因此不能在循环中完成。我想限制这个昂贵的函数调用,以便每个子调用都在 nextTick 上完成,例如:
function expensiveCode(){
process.nextTick(function(){
a.doExensiveOperation(1);
process.nextTick(function(){
b.doAnotherExensiveOperation(2);
process.nextTick(function(){
c.doADiffererentExensiveOperation(3);
process.nextTick(function(){
d.doExensiveOperation(4);
});
});
});
});
}
这显然是丑陋的,如果有 20 行不同的操作就太可怕了,甚至无法考虑。
我已经查看了许多库,例如“async.js”,但它们似乎都希望被调用的函数是异步的——在完成时有一个回调函数。我需要一种简单的方法来做到这一点,而无需将我的所有代码都转换为“完成时回调”方法,这似乎有点矫枉过正。