【发布时间】:2020-10-02 06:42:17
【问题描述】:
我想将cancel 方法添加到Promise 内置函数的子类中。为什么这不起作用?
class CancellablePromise extends Promise {
constructor(executor) {
let cancel = null
super((resolve,reject) => {
cancel = reject
executor(resolve, reject)
})
this.cancel = cancel
}
}
const p = new CancellablePromise((resolve) => setTimeout(resolve, 1000))
.then(() => console.log('success'))
.catch((err) => console.log('rejected', err))
p.cancel() // Uncaught exception
答案是Symbol.species吗?
【问题讨论】:
标签: javascript ecmascript-6 promise es6-class cancellation