美文网首页
ES6的Promise-解决回调地狱

ES6的Promise-解决回调地狱

作者: 雪映月圆 | 来源:发表于2019-03-10 19:57 被阅读0次

    如下面一段代码:

    function demo(){
        setTimeout(function(){
            console.log(1);
        }, 0);
    }
    demo();
    console.log(2);
    //会先打印2,再打印 1,如何让它先打印 1, 再打印 2呢?
    

    通过ES6的Promise对象来解决:

    function demo(){
        return new Promise(function( resolve, reject){
            setTimeout(function(){
                console.log(1);
                resolve("我打印完了,可以继续向下执行了");
            });
        });
    }
    
    demo().then(function( msg ){
        console.log( msg );
        console.log(2);
    });
    

    介绍

    一个 Promise 对象可以理解为一次将要执行的操作(常常被用于异步操作),使用了 Promise 对象之后可以用一种链式调用的方式来组织代码,让代码更加直观。

    Promise 对象中有两个重要方法————resolve 和 reject。
    resolve 方法可以使 Promise 对象的状态改变成成功,同时传递一个参数用于后续成功后的操作
    reject 方法则是将 Promise 对象的状态改变为失败,同时将错误的信息传递到后续错误处理的操作。
    
    Promise基本语法
    function fun(){
         return new Promise(function(resolve,reject){
              // 根据情况:resolve()或reject()
         });
    }
    fun().then(suc,err)
    //suc和err均为回调函数
    

    相关文章

      网友评论

          本文标题:ES6的Promise-解决回调地狱

          本文链接:https://www.haomeiwen.com/subject/nacppqtx.html