使用parallel同时运行五个函数时,如何最后在回调函数中输出所有函数的运行结果?
时间: 2024-09-18 09:12:20 浏览: 27
nodeAsyncify:异步使用普通的旧函数作为节点样式的回调
在JavaScript中,你可以使用`Promise.all()`结合`async/await`来实现异步操作的并发执行,并在所有任务完成后得到结果。这里是一个示例:
```javascript
function runFunction(i) {
return new Promise((resolve, reject) => {
setTimeout(() => {
let result = `Function ${i} finished`;
resolve(result);
}, i * 1000); // 模拟函数执行时间
});
}
async function executeFiveFunctions() {
try {
const promises = [];
for (let i = 1; i <= 5; i++) {
promises.push(runFunction(i));
}
// 等待所有函数完成并收集结果
const results = await Promise.all(promises);
// 在回调函数中输出所有函数的结果
console.log("All functions completed:");
results.forEach((result, index) => {
console.log(`Result ${index + 1}:`, result);
});
} catch (error) {
console.error('An error occurred:', error);
}
}
executeFiveFunctions();
```
在这个例子中,`executeFiveFunctions`函数创建了一个包含五个函数执行承诺的数组,然后通过`Promise.all`等待它们全部完成。当所有函数执行完毕后,结果会按顺序打印出来。
阅读全文