如果你知道Promise已经解决了,为什么你只能在它上面调用get()
并获得价值?而不是将then(..)
与回调函数一起使用。
所以不要这样做:
promise.then(function(value) {
// do something with value
});
我希望能够做得更简单:
var value = promise.get();
Java为它CompletableFuture提供了这个功能,我认为没有理由说JavaScript无法提供相同的功能。
答案 0 :(得分:7)
Java的get
方法“如果有必要,等待此未来完成”,即它阻止当前线程。我们绝对不想在JavaScript中这样做,它只有一个“线程”。
可以将API中的方法集成到determine synchronously是否以及完成承诺的结果,但是他们没有这样做是件好事。只有一个方法then
,以便在可用时获得结果,使事情变得更容易,更安全,更一致。编写自己的if-pending-then-else-else-that逻辑没有任何好处,它只会为错误提供可能性。异步很难。
答案 1 :(得分:0)
当然不是,因为任务将以异步方式运行,因此您无法立即获得结果。
但您可以使用sync / await来编写顺序异步代码。