ES6的Promise-解决回调地狱

2019-03-10  本文已影响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均为回调函数
上一篇 下一篇

猜你喜欢

热点阅读