javascript - Nodejs函数依赖

标签 javascript node.js asynchronous express nonblocking

嗨,我在 Nodejs 上有三个函数。

var one = function(){ implementation };
var two = function(){ implementation };
var three = function(){ implementation };

现在函数一和函数二是独立的,但函数三应该只有在函数一和函数二都完成执行时才能运行。我不想将函数二嵌套在函数一内,因为它们可以并行运行;在nodejs中可以做到这一点吗?

最佳答案

在这种情况下,我会使用标志。

(function() {
  //Flags
  oneComplete = false;
  twoComplete = false;

  one(function() {
    oneComeplete = true;
    if (oneComplete && twoComeplete) {
      three();
    }
  });

  two(function() {
    twoComeplete = true;
    if (oneComplete && twoComeplete) {
      three();
    }
  });
})();

一旦one执行完毕,就会进入回调并检查two()是否完成。如果是这样,它将运行 Three()。

同样,如果两个首先完成执行,那么它将检查 oneComplete 并运行 Three()

如果您需要添加更多函数(例如 one() 和 Two()),则此解决方案将无法扩展。对于这样的情况,我建议https://github.com/mbostock/queue

关于javascript - Nodejs函数依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771281/

相关文章:

javascript - 如何在 javascript 中通过 ref 引用传递变量

javascript - 使函数能够采用不同的参数集

javascript - AngularJs:-如何在 AngularJs 中将图片动态推送到 div 并上传到服务器

javascript - 当我使用 Node.js 作为 Web 应用程序时,我应该使用 sql 还是 Json 存储数据

node.js - 在 Cheerio 中使用 withStartIndices 选项时,element.startIndex 未定义

c++ - boost::async - 不确定实现

javascript - 使用 JavaScript 编辑 CSS

javascript - 如何从 ES6 模块导入默认和命名

node.js - 将 async.js 与 node.js 流一起使用

javascript - 如何让一段代码每15分钟连续执行一次?