"Waiting" 在 promise 或常规对象上使用 native(ES6) JavaScript promises

"Waiting" on either a promise or regular object using native(ES6) JavaScript promises

几年前,我曾使用 jQuery 或 Q 玩过几次 promises。我现在很生疏,想学习和使用新的原生 ES6 promises。

我似乎记得一个简洁的概念,您可以 "wait" 处理某事而不关心它是普通对象还是承诺。如果它是一个承诺,回调将在它异步完成时被调用,如果它是其他任何东西,回调将立即被调用——也许是下一个 tick。

但我不记得这是怎么做到的。我不确定它是否有名字,所以很难 Google 。我不确定它是否是所有 JS promise 实现的标准功能,或者它是否只是 jQuery 拥有的东西。

这个叫什么?我仍然可以使用原生承诺来做到这一点吗?我在哪里可以阅读它?

jQuery 的 $.when() 和 ES6 的 Promise.all() 都表现出您所指的行为。提供一个承诺,该函数等待承诺解决,但对于任何其他值,它立即 returns 。