空然后承诺

时间:2020-09-01 15:37:11

标签: javascript promise es6-promise

在工作期间,我偶然发现了代码库(旨在在浏览器中运行)中的这一行。这行有什么作用吗?对我来说似乎没有必要,但是在删除它之前,我要绝对确定我不会忽略该行所做的一些古怪的诺言特殊行为。

// Chain the finishPromise to our global finish chain.
this.finishPromise = this.finishPromise.then();

在该行的旁边,它被await修饰过几次,被初始化为Promise.resolve(),据我所知,它永远不会被覆盖。

1 个答案:

答案 0 :(得分:2)

假设这是原生JavaScript承诺或其他与Promises / A +兼容且没有自定义副作用的东西,¹这是有效的(JS specPromises/A+ spec)-令我有些惊讶-但没有用,也没有任何作用。您可以安全地删除它。


¹“ ...并且没有自定义副作用...” 上面的注释说“将finishPromise绑定到我们的全球Finish链”使我想知道这是否是promise子类(或更糟糕的是,普通Promise.prototype.then的猴子补丁版本)具有某种副作用。但这就像解释最初传递给then并随后被删除的东西一样容易。