在 NodeJS 中,有没有办法强制承诺同步解决?

编程入门 行业动态 更新时间:2024-10-05 15:25:38

在 NodeJS 中,有<a href=https://www.elefans.com/category/jswz/34/1771182.html style=没有办法强制承诺同步解决?"/>

在 NodeJS 中,有没有办法强制承诺同步解决?

我知道,我知道 - 你不应该这样做。在这种情况下,重构超出了范围,并且在我所拥有的时间范围内不切实际或不可能。

我正在对一些依赖于同步块的现有遗留代码进行更改。

新代码依赖于 Promise 的解析,但手动追踪所有调用并将它们转换为异步对我来说是不切实际的。

代码不是性能关键,在应用程序启动时运行一次,有什么办法让我等待承诺同步解决?

像这样的傻事:

function foo() {
  return new Promise(res => setTimeout(res, 1000))
}

function main() {
  let done = false
  foo().then(() => { done = true })
  while (!done) continue
}

main()
回答如下:

有什么方法可以让我等待承诺同步解决吗?

没有。 (

while (!done) continue;
忙循环不会让其他任务运行,因此永远不会执行承诺执行程序代码。)

在应用程序启动时运行一次

然后,假设

function main()
是你实际的应用程序入口点,你不关心它的返回值,即

function main() {
  console.log("I'm an application!");
}
main();

你可以做到

async function init() {
  await newAsynchronousInit();
  main();
}

init();

(或等效的

.then()
版本)因此异步 init 函数可以执行它的操作,然后继续执行 main 函数。

更多推荐

在 NodeJS 中,有没有办法强制承诺同步解决?

本文发布于:2024-05-30 10:34:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770402.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:没有办法   NodeJS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!