javascript - 让 Node.js 代码串行运行

标签 javascript node.js

所以我最近开始使用 Node.js,它以我以前见过的方式向我展示了异步代码。然而,我面临的问题是 Node Node 几乎异步执行函数调用(如果我理解正确的话)。所以我有两个函数A, B谁执行一些数据库操作。功能A需要在 B 开始之前完成。然而我意识到只需调用 A之后B显然没有削减它。所以我认为 Node 要做的就是进行回调:)。但我的制作应用程序可能会包含 A 到 Z 的系列,因此可能会变得困惑。不过,我真的很欣赏如何在 Node.js 中实现此类回调的示例。

var http = require('http');

function runAllFunc() {
  funcA();
  funcB();
};

var server = http.createServer(function(req,res) {
  syncFunc();
  res.writeHead(200, {'Content-Type':'text/plain'});
  res.end('dde');
}).listen(8080);

最佳答案

如果您只是将两个函数链接在一起,我会使用传统的回调。但是,如果您要拥有一堆相互依赖的各种组合,我会推荐 async 模块。 (https://github.com/caolan/async)

以下是执行上述示例的方法。

var async = require('async');

var funcA = function() {
  console.log("I am function 1");
};

var funcB = function() {
  console.log("I am function 2");
};

async.auto({
  funcA: function(onADone) {
    funcA();  // call your first function here
    onADone();  // callback
  },
  funcB: ['funcA', function(onBDone) {
    // second function will not execute until first one is done
    // because it is specified above
    funcB();
    onBDone();  // callback
  }],
}, function(err, res) {
  if (err) {
    console.log("something went wrong " + err);
  } else {
    console.log("done");
  }
});

关于javascript - 让 Node.js 代码串行运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28595198/

相关文章:

node.js - 如果应用程序被机器人访问,请不要启动 session

javascript - 删除 AM |来自日期变量的 PM

javascript - DIV 中的垂直居中文本

javascript - 如何根据对象的 "blueprints"将给定对象与类别匹配

javascript - 我在 Node.js 中读取 tgz 文件的方式有问题吗?基准测试显示速度很慢 :(

mysql - 如何仅显示 MySQL 中基于另一个表的列中的一行 - Express JS

javascript - 如何使用 alt.js 中的源成功请求后更新状态?

javascript - Vue 使用同一指令两次

javascript - 如何将JSON数据存储在数组中然后在HTML页面上显示

node.js - 在 mongodb node.js 中使用 $group 和 find