js&html&csss热前端前端

ES6之Promise讲解async/await的使用

2017-02-04  本文已影响6072人  leoying

1.promise 是一个替代回调函数的,解决方案。传统的回调需要,如果有多层,需要嵌套使用,但是promise改变了这种情况,
由原来的嵌套,变成了正常顺序执行方式,而不需要把下一个执行的写在回调函数内部。
promise常用:reject reslove 跟在then之后的catch
一旦执行了reject 或者 reslove,后面的promise状态不会再变。
代码如下:

   function test(){
       //promise是一个构造函数,内部接收一个回调函数。
       //回调函数内部有两个参数,reslove是执行成功的时候调用的,reject是失败调用的
       var promise = new Promise(function(reslove,reject){
            reslove(true);
       });
       return promise;
   }

   //调用该函数
   test().then(function(value){
        //这里的value会收到上一个reslove过来的值
        retrun new Promise(function(reslove,reject){
             //对上一次的值做一个判断处理
             if(value){
                reslove("成功");
             }else{
                reject("失败");
             }
        });
   }).catch(function(val){
        //同时这里还可以捕捉异常
   }).then(function(value){
        //如果没有抛出异常会继续上一次的值
   });

2.async/await 语法糖
通过async 可以指定一个函数为异步函数,执行异步函数后才能使用await.
await的作用其实就是替代了then方法,将resolve的值直接返回,使用起来更加方便。

//示例
async function demo() {
var result = await test(); //这里可以直接接收到返回值
return result; //如果调用demo函数的话,也是需要使用await来接收result这个返回值的.
}

注意:当return 一个await的值的时候,接收的函数也需要铜鼓await来接收,否则接收的数据会失败。

上一篇下一篇

猜你喜欢

热点阅读