同步使用获取承诺

Using a fetch promise synchronously

我需要一个同步函数(它可以是阻塞的)。

我需要使用 Fetch,当 promise 准备就绪时,我想 return 它在同步函数上。

我到处都找不到答案。

你不能像这样阻塞主线程,浏览器不允许你(或 nodejs,因为我不知道是哪个)。没有同步的方式来获取这样的信息。您可以改为使用 async/await 让您的代码避免回调。做你想做的事可能是非常不明智的,并且有更好的解决方案,但由于缺乏上下文,我不能告诉你更多。

I need a synchronous function

不太可能。

(it can be blocking).

这就是同步的意思。

长 运行 阻塞函数(包括网络操作)会导致严重的可用性问题,应该避免。

I need to use Fetch, and when the promise is ready, I want to return it on the synchronous function.

那是不可能的。

XMLHttpRequest 有一个同步模式,尽管它已被弃用并且 不应使用 .

您可以通过将 false 作为第三个参数传递给 open 来激活它。

xhr.open("METHOD as string", "URL as strong", false);

fetch 吸取了 XMLHttpRequest 的教训,并没有实施任何类似的东西。


改为了解如何处理异步代码。 asyncawait 关键字可让您以同步 样式 .

写入