【发布时间】:2021-03-08 15:19:37
【问题描述】:
我有一个功能可以做到这一点:
this._getContainerData().then((data) => {
this.__getIndexes(idx).forEach((indexVisible, index) => {
this.containerData[indexVisible] = data[index]
});
if (this.horizontalRailIndex === idx) {
this.container._setData(this.context);
}
});
this._getContainerData() 返回一个承诺,并被多次调用。我想检查这个承诺是否需要超过 1000 毫秒 - 如果是这样,请取消它或返回一个空的承诺。我有一个名为CancelablePromise 的类,我可以像这样导入和使用它:new CancelablePromise,它确实有一个取消功能。如果您有任何其他建议,我将很高兴听到。
【问题讨论】:
-
有
Promise.race()但它并没有取消任何东西。 -
好的,但是我怎样才能在 this._getContainerData() 上设置一个超时,然后再使用 promise.race
-
stackoverflow.com/questions/32461271/… - 这不是 100% 重叠,但我不是个人 google-bot。
-
Tl;博士;您构建一个承诺,并在实际承诺解决或超时时解决/拒绝它。
标签: javascript promise timeout settimeout