最简单Promise实现,原文链接
function Promise(excutor) {
var self = this
self.onResolvedCallback = []
function resolve(value) {
setTimeout(() => {
self.data = value
self.onResolvedCallback.forEach(callback => callback(value))
})
}
excutor(resolve.bind(self))
}
Promise.prototype.then = function(onResolved) {
var self = this
return new Promise(resolve => {
self.onResolvedCallback.push(function() {
var result = onResolved(self.data)
if (result instanceof Promise) {
result.then(resolve)
} else {
resolve(result)
}
})
})
}
本文深入浅出地介绍了如何从零开始实现一个简单的Promise对象。通过分析其构造函数和then方法,帮助读者理解Promise的工作原理及异步编程模式。示例代码清晰地展示了如何使用Promise进行错误处理和链式调用。
2万+

被折叠的 条评论
为什么被折叠?



