刚学习了promise, promise相当于异步操作结果中的占位符,它不会去订阅一个事件,也不会传递一个回调函数给目标函数,而是让函数返回一个promise,实质上promise是一个构造函数。
想更深入了解promise原理,看能不能自己写一个promise构造函数
//创建 Promise构造函数
function Promise(executor) {
// 添加属性
this.PromiseState = 'pending'
this.promiseResult = null
this.callbacks = []
let that = this
// 设置resolve函数的属性
function resolve(data) {
// 判断状态只能改变一次
if (that.PromiseState !== 'pending') return
that.PromiseState = 'fulfilled'
that.promiseResult = data
that.callbacks.forEach(item => {
item.onResolve(data)
})
// if (that.callbacks.onResolve) {
// that.callbacks.onResolve(data)
// }
}
// 设置reject函数的属性
function reject(data) {
if (that.PromiseState