美文网首页前端开发笔记让前端飞
ES6 Promise对象then方法链式调用

ES6 Promise对象then方法链式调用

作者: 后除 | 来源:发表于2018-03-10 00:24 被阅读162次

    then()方法的作用是Promise实例添加解决(fulfillment)和拒绝(rejection)状态的回调函数。then()方法会返回一个的Promise实例,所以then()方法后面可以继续跟另一个then()方法进行链式调用。

    let p = new Promise((resolve, reject) => {
        setTimeout(resolve, 1000, 'success');
    });
    p.then(
        res => {
            console.log(res);
            return `${res} again`;
        }
    )
        .then(
            res => console.log(res)
        );
    // 连续
    // success
    // success again
    

    但是前一个then()方法中的回调函数中又可能返回一个Promise实例,这时候后面一个then()方法中的回调函数会等前一个Promise实例的状态发生变化才会调用。

    let p = new Promise((resolve, reject) => {
        setTimeout(resolve, 1000, 'success');
    });
    p.then(
        res => {
            console.log(res);
            return new Promise((resolve, reject) => {
                setTimeout(resolve, 1000, 'success');
            });
        }
    )
        .then(
            res => console.log(res)
        );
    // 相隔1000ms
    // success
    // success
    

    相关文章

      网友评论

      • JsJavaCoder:想找这个问题,突然看到你的说明,非常感谢

      本文标题:ES6 Promise对象then方法链式调用

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