【发布时间】:2022-02-17 02:47:56
【问题描述】:
今天的 promises 很有趣...我想弄清楚为什么我不能参考 this.promise 来用另一种方法解决它,它总是 null。
感谢任何启发:)
export default class Example {
constructor() {
this.promise = null
}
test() {
this.promise = new Promise((resolve, reject) => {
this.something()
}).then(resolve => {
// resolved, do something else
}).catch(reject => {
console.log('reject', reject)
})
}
something() {
this.promise.resolve()
}
}
【问题讨论】:
-
Promise.resolve 是静态方法,不是实例方法。尝试拨打
resolve会导致问题。如果您甚至尝试在浏览器工具中执行const promise = new Promise(resolve => resolve('foobar')),promise.resolve会输出什么?也许在something()中你实际上是我猜你可以将resolve作为参数传递给something,但你总是可以在第一个then()中返回一个承诺,作为来自something()的承诺. -
啊!谢谢。
标签: javascript node.js ecmascript-6 promise es6-promise