ES6之Promise讲解async/await的使用

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来接收,否则接收的数据会失败。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 异步编程对JavaScript语言太重要。Javascript语言的执行环境是“单线程”的,如果没有异步编程,根本...
    呼呼哥阅读 7,339评论 5 22
  • 简单介绍下这几个的关系为方便起见 用以下代码为例简单介绍下这几个东西的关系, async 在函数声明前使用asyn...
    _我和你一样阅读 21,293评论 1 24
  • 弄懂js异步 讲异步之前,我们必须掌握一个基础知识-event-loop。 我们知道JavaScript的一大特点...
    DCbryant阅读 2,752评论 0 5
  • Promiese 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,语法上说,Pr...
    雨飞飞雨阅读 3,393评论 0 19
  • javascript的运行机制是单线程处理,即只有上一个任务完成后,才会执行下一个任务,这种机制也被称为“同步”。...
    我是xy阅读 3,948评论 1 6