我有一个API(在控件外部),该API返回Promise
。我想以一种同步的方式从Promise
中获取值并隐藏API的异步性,即不要冒起async
/ await
,{{1} }等。
换句话说,我正在寻找与C#的Task<TResult>.Result
等效的JavaScript。
谢谢!
答案 0 :(得分:0)
这是不可能的。真正阻止其他代码执行的唯一方法是类似
while (true) {
// break on some condition - i.e. after 5 second or when you find that something happened
}
这意味着您正在运行必须运行且永不停止(=使用100%的处理器时间)的同步任务(如while循环)。
它也仅阻止事件循环(执行所有代码的事件循环),但是如果有一些任务分配给工作线程,它仍将在该线程中执行。
您应该写下您的用例,以及如何使用它。您的问题似乎似乎是您对Node.js的工作方式没有足够的了解。 “异步性”没有错。它比其他语言更简单-该事件循环只有一个线程=同步线程,竞争条件等没有问题(在任何时候,您编写的代码仅由一个线程执行,并且总是必须完成整个同步部分,然后才能“异步地”跳到另一项任务-它的确定性和可预测性)