同步从JavaScript的Promise中获取结果

时间:2018-06-23 09:41:35

标签: javascript es6-promise

我有一个API(在控件外部),该API返回Promise。我想以一种同步的方式从Promise中获取值并隐藏API的异步性,即不要冒起async / await,{{1} }等。

换句话说,我正在寻找与C#的Task<TResult>.Result等效的JavaScript。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是不可能的。真正阻止其他代码执行的唯一方法是类似

while (true) {
  // break on some condition - i.e. after 5 second or when you find that something happened
}

这意味着您正在运行必须运行且永不停止(=使用100%的处理器时间)的同步任务(如while循环)。

它也仅阻止事件循环(执行所有代码的事件循环),但是如果有一些任务分配给工作线程,它仍将在该线程中执行。


您应该写下您的用例,以及如何使用它。您的问题似乎似乎是您对Node.js的工作方式没有足够的了解。 “异步性”没有错。它比其他语言更简单-该事件循环只有一个线程=同步线程,竞争条件等没有问题(在任何时候,您编写的代码仅由一个线程执行,并且总是必须完成整个同步部分,然后才能“异步地”跳到另一项任务-它的确定性和可预测性)