一种通过async/await实现函数同步执行的方式

Posted 早晨学习的地方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一种通过async/await实现函数同步执行的方式相关的知识,希望对你有一定的参考价值。

 1 const testArr = [
 2   () => {
 3     return new Promise((resolve, reject) => {
 4       setTimeout(()=> {
 5         alert(1);
 6         resolve();
 7       }, 300);
 8     });
 9   },
10   () => {
11     return new Promise((resolve, reject) => {
12       setTimeout(()=> {
13         alert(2);
14         resolve();
15       }, 500);
16     });
17   },
18   () => {
19     return new Promise((resolve, reject) => {
20       setTimeout(()=> {
21         alert(3);
22         resolve();
23       }, 100);
24     });
25   }
26 ];
27 
28 async function iterate(arr) {
29   let index = 0;
30   while (index < arr.length - 1) {
31     await arr[index]();
32     index += 1;
33   }
34   return arr[index]();
35 }
36 
37 iterate(testArr);

建议在https://codepen.io/pen上执行查看,挂载https://cdn.bootcss.com/babel-polyfill/7.0.0-alpha.12/polyfill.js

若您嫌麻烦,直接点这里: https://codepen.io/timrchen/pen/NggaEj

以上是关于一种通过async/await实现函数同步执行的方式的主要内容,如果未能解决你的问题,请参考以下文章

async和await 总结

Angular请求同步async、await、toPromise使用方式

async / await函数

如何使用 async/await 处理同步方法/任务

理解异步函数async和await的用法

async/await 原理及简单实现