我有,我正在写东西文件:的NodeJS:如何等待几个异步任务完成
var stream = fs.createWriteStream("my_file.txt");
stream.once('open', function(fd) {
names.forEach(function(name){
doSomething(name);
});
stream.end();
});
这是工作确定,我能够写入文件。 问题是doSomething()函数有一些异步的部分。可以使用dnsLookup函数给出一个示例。某处在我的DoSomething的(),我有:
dns.lookup(domain, (err, addresses, family) => {
if(err){
stream.write("Error:", err);
}else{
stream.write(addresses);
}
});
现在,我的问题是,由于DNS检查是异步的,代码保持执行关闭流。当DNS响应终于到来时,它无法写入任何地方。 我已经尝试使用异步模块,但它不起作用。可能我做错了什么。
有什么想法?
承诺存在解决您遇到的问题。我会看看类似https://github.com/kriszyp/promised-io – inkdeep
附注:我相当肯定你的意思是'if(err)'而不是'if(!err)',因为连接到它的块用于处理错误。 –