我试图理解如何使用nimble进行nodejs的流控制,但我很难理解它实际上是如何工作的,并且真的没有文档解释它(我可以找到)
例如,从文档中获取以下代码:
_.parallel([
function (callback) {
setTimeout(function () {
console.log('one');
callback();
}, 25);
},
function (callback) {
setTimeout(function () {
console.log('two');
callback();
}, 0);
}
]);
我很难理解函数接受的回调参数,实际上传递的回调是什么?下一个功能是什么?如果是这样的话,那么为什么第二个(也是最后一个)函数也运行callback()?如果没有更多的函数要运行,那么这有什么意义呢?谢谢!
我做了自己的小测试,并取出回调:
var flow = require('nimble');
flow.parallel([
function() {
setTimeout(function() {
console.log('this happens');
}, 3000);
},
function() {
setTimeout(function() {
console.log('and this happens at the same time');
}, 3000);
}
]);
代码的工作原理和我传入回调函数的工作原理一样,所以现在我觉得我真的不明白回调参数是做什么的。
2条答案
按热度按时间vbopmzt11#
我很难理解函数接受的回调参数,实际上传递的回调是什么?
这里的回调用来确认异步操作已经完成。你不需要知道回调函数做什么,只需要知道它接受什么作为参数。
这叫做连续传递。=>给定一个函数和一个回调作为参数,回调一旦执行就会“继续”负责控制流的任何东西正在做的事情。
您可能最终会将一个错误对象作为第一个参数传递给回调,以便在异步操作不成功时产生一个错误。你可能想看看npm上的async包,以进一步解释这个问题。
izj3ouym2#
在串行流控制中,按顺序执行多个异步任务,我们使用“回调”。一个这样的示例setTimeout函数用于一个接一个地重复执行为各种执行(顺序的异步任务)设置的相同setTimeout函数,需要密切关注代码执行。对于上述情况,可以使用流控制工具,如Nimble(npm install nimble),它使生活变得轻松,为Nimble提供了一系列函数来执行,非常整洁。