本文通过对 promise 源码的阅读,目标是写出一个简化版可以用于co的promise。
网上的promise包有很多,其中使用比较广泛的是 promise 和 bluebird
本次我选择阅读的是:https://www.npmjs.com/package/promise
代码长度不算很长,总过加起来不到两千行,代码实现思路非常清晰。
问题:
1,promise是如何将异步函数转为链式执行的?
首页我们通过图像来了解 promise 的运行流程。
这里我们通过自己写几段测试代码,来讲解promise的执行流程
test code 1:
// 1s之后返回d
var test = function(d){
return new Promise(function(rel,rej){
setTimeout(function(){
rel(d)
},1000);
})
}
// 执行他,在得到d之后将它打印出来
test
.then(d=>{
console.log(d);
})
网友评论