Android 反应本机-同步调用restful API

Android 反应本机-同步调用restful API,android,api,react-native,synchronization,restful-url,Android,Api,React Native,Synchronization,Restful Url,我知道React Native使用JS做事情的方式,即使函数调用异步。因此,这也适用于API“fetch”函数。然而,出于某种原因,我需要使API“fetch”同步 这就是我想做的。该应用程序有一个项目列表。它必须循环遍历项目,对于每个项目,我需要构造URL,然后根据构造的URL调用“fetch”以获得响应(例如,如果我有5个项目,它将调用API 5次,其中调用的每个URL都有不同的参数)。一旦我成功接收到所有列表项的响应,那么我需要做一些其他的事情,比如更新一些状态(状态取决于是否返回所有响应

我知道React Native使用JS做事情的方式,即使函数调用异步。因此,这也适用于API“fetch”函数。然而,出于某种原因,我需要使API“fetch”同步

这就是我想做的。该应用程序有一个项目列表。它必须循环遍历项目,对于每个项目,我需要构造URL,然后根据构造的URL调用“fetch”以获得响应(例如,如果我有5个项目,它将调用API 5次,其中调用的每个URL都有不同的参数)。一旦我成功接收到所有列表项的响应,那么我需要做一些其他的事情,比如更新一些状态(状态取决于是否返回所有响应)

请注意,我无法控制后端ie,无法将URL端改为批处理调用


问题是,如何在React Native中进行同步调用?

您可以使用XMLHttpRequest对象进行同步调用

var request = new XMLHttpRequest();

request.open('GET', 'https://mywebsite.com/endpoint.php', false); // third parameter  FALSE makes Synchronous HTTP request
request.send(null);

if (request.status === 200) {
  console.log(request.responseText);
}

您将获得许多npm模块,这些模块将提供同步api调用


我希望这将对您有所帮助。

您可能不需要同步调用API。如果您只是想在从所有api调用获取数据后执行某些操作,那么可以使用Promise.all()。当所有承诺都已解决时,它将解决,并且您将在其“.then()”函数中获得一个结果数组[未处理的承诺拒绝:错误:不支持同步http请求]