gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:53 27 4
gpt4 key购买 nike

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com