【发布时间】:2016-10-16 02:58:18
【问题描述】:
几年前我使用 jQuery 或 Q 玩过几次 Promise。我现在已经很生疏了,想学习和使用新的原生 ES6 Promise。
我似乎记得一个简洁的概念,您可以“等待”某事而不关心它是普通对象还是承诺。如果它是一个承诺,则在异步完成时调用回调,如果是其他任何东西,则立即调用回调 - 可能是下一个滴答声。
但我不记得这是怎么做到的。我不确定它是否有名称,因此 Google 很难找到它。我不确定它是否是所有 JS 承诺实现的标准功能,或者它只是 jQuery 有的东西。
这叫什么?我还能用原生承诺做到这一点吗?我在哪里可以阅读它?
【问题讨论】:
-
这似乎与jQuery的
.when()有关,它可能与Promise.all()相似也可能不相似... -
可能是
Promise.resolve(x)?如果你给它一个promise,它只会返回promise,但是如果你给它其他任何东西,它会返回一个立即履行的带有该值的promise。 -
@AgentME:啊,也许吧。听起来这是 jQuery Promise 和 native 之间不同的另一件事。他们已经使我的大脑有些弯曲,但差异使我的大脑变得更糟\-:
-
似乎both jQuery.when() and Promise.all() 采用了一个数组,其元素可以是一个promise,也可以是一个普通的对象/值。我大概就是这么想的。但由于我仍在玩它,真正了解其中内容的人可能会发布答案,我不会自己回答。
标签: javascript promise ecmascript-6 terminology