2016-11-17 2 views
0

Ich muss 2 HTTP-Anfrage machen - die Antwort des ersten wird in der zweiten verwendet werden. Die Art, wie ich die Anfrage mache, ist die http.get(url, callback) Methode aus dem http Modul. Aber ich nehme an, dass nodejs einen anderen Thread für die zweite http-Anfrage erzeugt und die Antworten asynchron ankommen. Was ich getan habe, ist es, die zweite HTTP-Anfrage in den Rückruf des ersten zu stellen, es funktioniert, sieht aber aus wie nicht zu erhaltender Code für mich.Knoten js serielle HTTP-Anfragen

noch andere Möglichkeiten, es zu tun?

+0

Try 'async' http://caolan.github.io/async/ –

+0

Mögliches Duplikat von [So vermeiden Sie lange Verschachtelungen von asynchronen Funktionen in Node.js] (http://stackoverflow.com/questions/4234619/how-to-avoid-long-nesting-of-asynchronous-functions-in-node- js) –

Antwort

0

habe ich für Sie schnelles Beispiel in ES6:

const requestPromise = require('request-promise'); 

const rootUrl = 'https://jsonplaceholder.typicode.com'; 

const request1 = requestPromise(`${rootUrl}/posts/1`); 
const request2 = requestPromise(`${rootUrl}/albums/1`); 

Promise.all([request1, request2]) 
    .then(values => { 
    console.log(values); 
    }); 

Sie benötigen zwei Abhängigkeiten zu installieren:

"request": "^2.78.0", 
"request-promise": "^4.1.1"