我想使用ES6语法扩展本机Javascript Promise类,并能够在子类构造函数中调用一些异步函数。基于异步功能的结果,承诺必须被拒绝或解决。
但是,then调用函数时会发生两个奇怪的事情:
class MyPromise extends Promise {
constructor(name) {
super((resolve, reject) => {
setTimeout(() => {
resolve(1)
}, 1000)
})
this.name = name
}
}
new MyPromise('p1')
.then(result => {
console.log('resolved, result: ', result)
})
.catch(err => {
console.error('err: ', err)
})Run Code Online (Sandbox Code Playgroud)