2017-06-15 1 views
0

Ich weiß, dass React Native verwendet JS Art und Weise Dinge zu tun, dh Funktionsaufrufe asynchron. Dies gilt auch für die API "fetch" -Funktion. Aus irgendeinem Grund muss ich jedoch die API "fetch" synchron machen.React Native - rufen Sie restful API synchron

Das ist, was ich tun möchte. Die App enthält eine Liste mit Artikeln. Es muss die Elemente durchlaufen und für jede von ihnen muss ich die URL konstruieren und dann "fetch" aufrufen, basierend auf der konstruierten URL, um die Antwort zu bekommen (zB wenn ich 5 Elemente habe, würde es die API 5 Mal aufrufen, wo Jede aufgerufene URL hat unterschiedliche Parameter). Sobald ich die Antworten für alle Auflistungselemente erfolgreich empfangen habe, muss ich etwas anderes tun, z. B. die Aktualisierung eines Status (der Status hängt davon ab, dass alle Antworten zurückgegeben werden).

Beachten Sie, dass ich keine Kontrolle über das Backend habe, dh ich kann die URL-Seite nicht ändern, um stattdessen Stapelaufrufe zu haben.

Frage ist, wie mache ich Sync-Aufruf in React Native?

+0

Sie müssen möglicherweise nicht apis synchron aufrufen. Wenn Sie nur etwas tun möchten, nachdem Sie Daten von allen API-Aufrufen erhalten haben, können Sie Promise.all() https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise/all verwenden. Es wird aufgelöst, wenn alle Versprechen gelöst sind und Sie erhalten eine Reihe von Ergebnissen in seiner ".then()" -Funktion –

Antwort

0

Sie können synchron mit dem XMLHttpRequest-Objekt aufrufen.

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); 
} 

oder

finden Sie viele npm Module erhalten, die synchrone API-Aufruf zur Verfügung stellt.

ich hoffe, das wird dir helfen.