promise

2018-11-02  本文已影响0人  前端二营长

promise传送门:https://www.cnblogs.com/whybxy/p/7645578.html

promise是一个构造函数,自己身上有call、resolve、reject方法,原型上有then和catch等方法

Promise的构造函数接收一个参数,是函数,并传入两个参数分别是resolve和reject,分别表示异步操作执行后成功后的回调函数和失败后的回调函数

function runAsync(){
    var p = new Promise(function(resolve, reject){
        //做一些异步操作
        setTimeout(function(){
            console.log('执行完成');
            resolve('随便什么数据');
        }, 2000);
    });
    return p;            
}
runAsync()

在runAsync()的返回上直接调用then方法,then接收一个参数,是函数,并且会拿到我们在runAsync中调用resolve时传的的参数。运行这段代码,会在2秒后输出“执行完成”,紧接着输出“随便什么数据”

runAsync().then(function(data){
    console.log(data);
    //后面可以用传过来的数据做些其他操作
    //......
});

then里面的函数就是平时的回调函数,能够在异步执行完成后执行。简单来说就是将回调分离,异步完成后,用链式的方法调用回调函数。可以实现多个回调函数,比传统方便。一个.then(callback)就是一个回调的实现

then方法可以接受两个参数,第一个对应resolve的回调,第二个对应reject的回调

上一篇 下一篇

猜你喜欢

热点阅读