React Native - 同步调用restful API
Posted
技术标签:
【中文标题】React Native - 同步调用restful API【英文标题】:React Native - call restful API synchronously 【发布时间】:2017-06-15 04:00:34 【问题描述】:我知道 React Native 使用 JS 做事方式,即异步调用函数。所以这也适用于 API“获取”功能。但是,出于某种原因,我需要使 API“获取”同步。
这就是我想做的。该应用程序有一个项目列表。它必须遍历项目,对于每个项目,我需要构造 URL,然后根据构造的 URL 调用“获取”以获取响应(例如,如果我有 5 个项目,它将调用 API 5 次,其中每个调用的 URL 都有不同的参数)。一旦成功接收到所有列表项的响应,我就需要做其他事情,例如更新某些状态(状态取决于是否返回所有响应)。
请注意,我无法控制后端,即无法更改 URL 端以进行批量调用。
问题是,如何在 React Native 中进行同步调用?
【问题讨论】:
你可能不需要同步调用api。如果您只是想在从所有 api 调用中获取数据后做某事,那么您可以使用 Promise.all() developer.mozilla.org/en/docs/Web/javascript/Reference/…。当所有的 Promise 都解决后,它就会解决,你会在它的 ".then()" 函数中得到一个结果数组 【参考方案1】:您可以使用 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);
或
您将获得许多提供同步 api 调用的 npm 模块。
希望对你有帮助。
【讨论】:
[未处理的承诺拒绝:错误:不支持同步 http 请求]以上是关于React Native - 同步调用restful API的主要内容,如果未能解决你的问题,请参考以下文章
npx react-native run-android:E/Device:同步期间出错:EOF