gpt4 book ai didi

javascript - NodeJS : How do I perform an action after multiple asynchronous functions have completed?

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

这里是初学者。我开始意识到我使用异步函数的方式可能没有充分利用异步特性。

我做这样的事情:

fs.readFile(file, function(err, data){
fs.readAnotherFile(anotherFile, function(err, data){
doThisAfterBothHaveLoaded();
});
})
})

但是,如果我在开始另一件事之前等待一件事完成,这不是违背了异步的目的吗?

那么我该如何去做这样的事情呢?:

fs.readfile(file, function(err, data){
doThisAfterBothHaveLoaded();
});

fs.readAnotherFile(anotherFile, function(err, data){
doThisAfterBothHaveLoaded();
});

回调中的函数在两者都加载后才会被调用?

最佳答案

根据我们的要求,我们可能需要等待一项操作完成才能开始另一项操作。

但就您的情况而言,如果这两个操作彼此不相关,并且您想在这两个操作完成后执行某些操作,则检查 async模块。

使用它,您可以编写:

async.each(['file1.txt', 'file2.txt'], function (filename, cb) {
fs.readFile(filename, function (err, data) {
if (err) {
return cb(err);
}
console.log("Reading " + filename + " complete!");
// do something with data
console.log(data);
cb(null);
});
}, function (err) {
console.log("Reading both files is complete");
});

关于javascript - NodeJS : How do I perform an action after multiple asynchronous functions have completed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31453161/

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