+
讀了這篇 Async 在 forEach、map 等各种迭代中的使用,修剪了其中的示例程序,更好理解些了。
function get(i) {
return new Promise(resolve => {
setTimeout(() => {
console.log("get %d", i);
resolve(i);
}, i * 500);
})
}
async function printFiles() {
const files = [3, 1, 2].map(file => get(file));
for await (const contents of files) {
console.log("contents: %d", contents);
}
}
printFiles();
// will console:
get 1
get 2
get 3
contents: 3
contents: 1
contents: 2