JS异步编程:手写Promise

注: 此文章仅为学习Promise的原理,有一些细节问题和边界处理没有判断,代码不可用于生产环境。如:浏览器内置的Promise使用微任务实现异步,这里用 setTimeout 宏任务实现异步。当Pr