所以我最近开始使用 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/