首页 > 解决方案 > javascript Promise 中的 CompletableFuture.get() 等效项?

问题描述

我最近从 JAVA 8 开始使用 Typescript/Javascript 进行编程。一遇到async/await,就让我想起了CompletableFuture. 在java中,不管方法的返回类型如何,我都可以someMethodReturningFuture.get()在方法内部调用,可以随意阻塞执行。但是在 JavaScript 中,为什么我们需要声明一个方法,就像async我们想要阻塞其他异步方法时使用await? 可能有什么大错特错的东西,直到现在我才相信Java/CompletableFuture

标签: javascriptjavaasynchronouspromisecompletable-future

解决方案


因为 JS 有同步执行模型。产生的行为通常被描述为“单线程”。当然,您可以阻止该“单线程”以等待承诺的解决,但这会阻止任何东西²,这是您可能不想要的行为,因此它不是语言的一部分。

²:包括浏览器渲染/对用户的反应,以及承诺解决方案本身......


推荐阅读