我有这样的情况,想知道一个promise的状态是什么。下面的start
函数只有在它不再运行(Promise没有处于pending状态)时才调用someTest
函数。 start
函数可以被多次调用,但如果在测试仍在运行时调用它,它不会等待并且仅返回false
。
class RunTest {
start() {
retVal = false;
if (!this.promise) {
this.promise = this.someTest();
retVal = true;
}
if ( /* if promise is resolved/rejected or not pending */ ) {
this.promise = this.someTest();
retVal = true;
}
return retVal;
}
someTest() {
return new Promise((resolve, reject) => {
// some tests go inhere
});
}
}
我找不到一种简单的方法来检查一个 Promise 的状态。类似 this.promise.isPending
这样的东西会很好 :) 感谢任何帮助!
我无法找到一种简单的方法来检查 Promise 的状态。类似于 this.promise.isPending
这样的东西将会很棒 :) 感谢任何帮助!
setInterval
一直调用异步函数。而且那个东西每次只应该运行一次。当然,我可以在this
上设置一个变量,比如this.isBusy = true
。但在我看来,这听起来像是不知道承诺状态的权宜之计。 - Jeanluca Scaljeri