我当前的代码是这样:
const fs = require('fs');
var file = fs.readFileSync('file.txt').toString().split("\n");
for(i in file) {
var [thing1, thing2, thing3] = file[i].split(":");
myfunction(thing1, thing2, thing3);
}
这将使用文件中的一些信息为文件中的每一行执行一个功能。由于技术原因,该功能一次只能运行一次。 如何让for循环等待函数完成然后再次循环?
答案 0 :(得分:1)
如果我的功能是同步功能之一,则说明您的代码已经可以使用
其他方式:
Get-Content (Get-PSReadlineOption).HistorySavePath
确保在代码块中添加异步:
await myfunction(thing1, thing2, thing3);
答案 1 :(得分:0)
我的方法是使myfunction
await
像这样:
async function myfunction (thing1, thing2, thing3) {
// perform your operations here
return 'done'; // return your results like object or string or whatever
}
这样它就可以for循环等待每次迭代完成,如下所示:
const fs = require('fs');
const file = fs.readFileSync('file.txt').toString().split("\n");
// This main function is just a wrapper to initialize code
async function main() {
for(i in file) {
let [thing1, thing2, thing3] = file[i].split(":");
let result = await myfunction(thing1, thing2, thing3);
console.log(`Result of ${i} returned`);
}
}
main();
对于完整的示例运行克隆node-cheat,然后运行node loop-await.js
。