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

promise/async/await

时间:2018-10-17 19:04:05      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:bsp   es6   sync   兼容性   www   dex   特性   fine   新特性   

promise和async/await都是异步方案,promise是es6的新特性,而async/await是es7新出的特性。而对于async/await来说是基于promise的,他可以让我们更加优雅的写出代码,而替代then()的写法,例如:

 

const f = () => {

  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject(234);
    }, 2000);
  });
};
 
const testAsync = async () => {
  try {
    const t = await f();
    console.log(t);
  } catch (err) {
    console.log(err);
  }
};
 
testAsync();

在上述代码中,同样实现了代码的先后滞留执行问题;需要注意的是await必须写在async的作用域内;

一段话解释就是:await后面等待的是一个结果,不仅仅可以等待一个promise对象,也可以是返回值;async函数是返回的是一个promise对象,一般是在async里return返回值,如果没有返回值,它会返回 Promise.resolve(undefined),但也不会阻塞后面的语句执行;await后面的值可以是async返回的promise,也可以是简单的function函数,它需要包含在async函数内;并且通过try{}catch{}来解决promise.reject()报错的问题。

promise和async/await都是实现异步的好方法,虽然现在还有兼容性的问题,但我们可以使用babel来转换es6和es7。

 
参考博主https://www.cnblogs.com/abey/p/7054527.html

promise/async/await

标签:bsp   es6   sync   兼容性   www   dex   特性   fine   新特性   

原文地址:https://www.cnblogs.com/xuhuang/p/9806255.html

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