Skip to content

ES6 Promise #26

Open
Open
@ChuChencheng

Description

@ChuChencheng

概念

异步编程的一种解决方案,最早由社区提出并实现, ES6 写进语言标准。

规范

Promises/A+

实现

见仓库 promise-implementation

主要难点在于 resolve 的如果是个 Promise ,要等这个 Promise 有结果后再处理当前 Promise ,即是一个递归的过程,获取到最后有结果的 Promise 。在规范上,就是 the Promise Resolution Procedure 这个过程。

另一个难点就是 then 方法的实现,这是 Promise 实现的核心之一,其他方法都是基于构造函数与 then 方法的扩展。

扩展

对于 Promise.all, Promise.allSettledPromise.race 这类传入多个 Promise 的方法,限制其同时进行的 Promise 并发数:

见仓库 batch-promise

总结起来就是 计数+递归

参考

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions