2017-06-15 91 views
0

我知道React Native使用JS做事情的方式,即使函数调用异步。所以这也适用于API“获取”功能。但是,由于某种原因,我需要使API“获取”同步。React Native - 同步调用restful API

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

请注意,我无法控制后端,即无法将URL侧改为批量调用。

问题是,如何在React Native中进行同步呼叫?

+0

您可能不需要同步调用apis。如果你只是想在从所有api调用获取数据之后做些什么,那么你可以使用Promise.all()https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise/all。当所有的promise都解决了,你将在“.then()”函数中得到一组结果 –

回答

0

您可以使用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调用。

我希望这会帮助你。