美文网首页
手写源码-链式 promise

手写源码-链式 promise

作者: 胡小喵_ | 来源:发表于2021-07-27 09:53 被阅读0次

实现方式

const promise1 = () => {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log('promise1');
            resolve();
        }, 1000);
    });
};

const promise2 = () => {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log('promise2');
            resolve();
        }, 1000);
    });
};

const promise3 = () => {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log('promise3');
            resolve();
        }, 1000);
    });
};

const promiseQueue = arr => {
    arr.reduce(
        (accPromise, curPromise) => accPromise.then(() => curPromise()),
        Promise.resolve()
    );
};

等价于以下代码

promise1().then(() => {
    return promise2();
}).then(() => {
    return promise3();
});

亦或以下代码

new Promise(resolve => {
    setTimeout(() => {
        console.log('promise1');
        resolve();
    }, 1000);
})
    .then(() => {
        return new Promise(resolve => {
            setTimeout(() => {
                console.log('promise2');
                resolve();
            }, 1000);
        });
    })
    .then(() => {
        return new Promise(resolve => {
            setTimeout(() => {
                console.log('promise3');
                resolve();
            }, 1000);
        });
    });

相关文章

  • 手写源码-链式 promise

    实现方式 等价于以下代码 亦或以下代码

  • 手写Promise源码

    Promise是一个类 在执行这个类的时候需要传递一个执行器进去,执行器会立即执行 Promise中有三种状态,...

  • [源码]手写Promise

    Promise A+规范: https://promisesaplus.com/[https://promises...

  • js promise图解

    链式调用 封闭promise

  • 手写Promise

    手写 Promise 我们会通过手写一个符合 Promise/A+ 规范的 Promise 来深入理解它,并且手写...

  • Promise

    什么是Promise Promise解决了什么问题 Promise/A+规范 Promise的原理(如何实现链式调...

  • 嵌套的promise执行顺序

    外部promise有多个then链式调用,第一个then里面执行另一个promise,也带多个then链式调用,他...

  • Promise用法详解

    参考promise|深入理解 promise:promise的三种状态与链式调用 Promise对象只有三种状态 ...

  • ES6

    AJAX 异步网络请求 Promise 使用了Promise对象之后可以链式调用的方式组织代码 Promise.a...

  • promise 并行 串行

    Promise.all并行执行promise 顺序执行promise 1.使用then链式操作 2.使用promi...

网友评论

      本文标题:手写源码-链式 promise

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