【问题标题】:How does nimble work in nodejs?敏捷如何在 nodejs 中工作?
【发布时间】:2014-01-18 14:32:59
【问题描述】:

我正在尝试了解如何使用 nimble 进行 nodejs 的流控制,但我无法理解它的实际工作原理,并且确实没有任何文档可以解释它(我可以找到)

例如,从文档中获取以下代码:

_.parallel([
    function (callback) {
        setTimeout(function () {
            console.log('one');
            callback();
        }, 25);
    },
    function (callback) {
        setTimeout(function () {
            console.log('two');
            callback();
        }, 0);
    }
]);

我无法理解函数采用的回调参数,实际上作为回调传递的是什么?下一个功能是什么?如果是这样,那么为什么第二个(也是最后一个)函数也运行回调()?如果没有更多的功能可以运行,那么这有什么意义呢?谢谢!

我做了自己的小测试并取出了回调:

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);
}
]);

而且代码的工作方式就像我传入了回调一样,所以现在我觉得我真的不明白回调 args 是做什么的。

【问题讨论】:

标签: node.js flow-control nimble


【解决方案1】:

我无法理解函数采用的回调参数,实际上作为回调传递的是什么?

回调用于确认异步操作已完成这一事实。你不需要知道回调做什么,只需要知道它接受什么作为参数。

称为续传。 => 给定一个函数和一个回调作为参数,一旦执行,回调将“继续”负责控制流的工作。

如果异步操作不成功,您最终可能会将错误对象作为第一个参数传递给回调以产生错误。您可能想查看 npm 上的 async 包以了解有关此问题的进一步说明。

【讨论】:

  • 谢谢 MPM。你能解释一下为什么我的问题中的第二段代码没有回调就可以工作吗?如果代码不需要它们,那么将它们放入有什么意义?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 2023-04-07
  • 1970-01-01
  • 2017-10-01
  • 2012-05-16
  • 1970-01-01
相关资源
最近更新 更多