javascript - javascript Promise 中的 CompletableFuture.get() 等效项?
问题描述
我最近从 JAVA 8 开始使用 Typescript/Javascript 进行编程。一遇到async/await
,就让我想起了CompletableFuture
. 在java中,不管方法的返回类型如何,我都可以someMethodReturningFuture.get()
在方法内部调用,可以随意阻塞执行。但是在 JavaScript 中,为什么我们需要声明一个方法,就像async
我们想要阻塞其他异步方法时使用await
? 可能有什么大错特错的东西,直到现在我才相信Java/CompletableFuture
。
解决方案
因为 JS 有同步执行模型。产生的行为通常被描述为“单线程”。当然,您可以阻止该“单线程”以等待承诺的解决,但这会阻止任何东西²,这是您可能不想要的行为,因此它不是语言的一部分。
²:包括浏览器渲染/对用户的反应,以及承诺解决方案本身......
推荐阅读
- r - 如果满足条件,则替换多列中的单元格值(使用列中的值)
- javascript - JavaScript - 匹配 0.01 到 99 之间任何数字的正则表达式
- makefile - makefile 中冒号后的管道:/home/.ssh/config: | /home/.ssh
- python - Python中的列表数据结构
- javascript - 使用Javascript从右到左滚动进度条
- java - 无法获得 kafka 的偏移滞后。原因:org.apache.kafka.shaded.common.config.ConfigException
- node.js - 在 Express 中,我的路由目录中的 router.get('/') 如何处理除 '/' 以外的请求?
- javascript - 浏览器扩展:加载元素时如何执行函数
- arrays - 如何在 Ruby on Rails 中拆分字符串并将其转换为值列表
- micronaut - 如何将外部 application.yml 加载到使用 Micronaut Picocli 开发的应用程序中?