码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-06-22 16:47:50      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:div   blog   com   mis   dex   fill   return   pre   span   

 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实现函数同步执行的方式

标签:div   blog   com   mis   dex   fill   return   pre   span   

原文地址:http://www.cnblogs.com/tim100/p/7065406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!