首页 > 其他 > 详细

简单理解ES6的async、await

时间:2020-05-16 13:59:36      阅读:58      评论:0      收藏:0      [点我收藏+]

以前项目中为了能较为优美、简洁地处理多个异步事件使用es6的async与await语法糖,但对其并未有深入的理解。现粗略了解与整理了一下,再次写下大概的理解:

1.async可以看做声明并返回了Promise对象; 

2.await相当于定义Promise内的方法, 必须在async中使用;

3.当await中的方法执行完毕或返回后执行后续代码。

例如下面表现函数执行顺序的代码:

async function async1(){
  console.log(‘async1 start‘)
  await console.log(‘async1 finish‘)
  console.log(‘async1 end‘)
}

async function async2(){
  await console.log(‘promise1‘)
  console.log(‘promise2‘)
}

setTimeout(() => {
  console.log(‘setTimeout‘)
}, 0);

async1();
async2();

执行代码打印结果如下:

技术分享图片

 

 结果等同于

function async1(){
  console.log(‘async1 start‘)
  new Promise(function(resolve){
    console.log(‘async1 finish‘)
    resolve()
  }).then(()=>{
    console.log(‘async1 end‘)
  })
}

function async2(){
  new Promise(function(resolve){
    console.log(‘promise1‘)
    resolve()
  })
  .then(()=>{
    console.log(‘promise2‘)
  })
}

setTimeout(() => {
  console.log(‘setTimeout‘)
}, 0);

async1();
async2();

 

简单理解ES6的async、await

原文:https://www.cnblogs.com/neeter/p/12899959.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!