2017-06-15 70 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調用。

我希望這會幫助你。