HTTP-Anfrage für mehrere Knoten

7

Ich bin neu im Knoten und muss eine API von Drittanbietern aus meinem Code aufrufen. Ich habe gefunden, wie man das tut, indem ich http.request von diesem Link Ссылка . Was ich tun muss, ist zwei verschiedene API-URLs aufzurufen und die Antwortdaten des ersten Anrufs im zweiten Anruf zu verwenden, der nur eine ID als Parameter für Ressource2 ist.

Ich weiß nicht, wie ich zwei dieser Anrufe zusammenführen würde, ohne dass es sich um ein Duplikat handelt. Jede Hilfe wäre willkommen.

%Vor%     
Sealer_05 17.01.2016, 06:53
quelle

1 Antwort

23

Zuerst sollten Sie sich die Anfrage ansehen, die am häufigsten für HTTP-Anfragen ausgewählt wird zu seiner Einfachheit.

Zweitens können wir die Einfachheit der Anfrage mit dem Konzept von Promises kombinieren, um mehrere Anfragen hintereinander zu stellen und dabei den Code flach zu halten.
Verwenden Sie Anfrage-Versprechen

%Vor%

Wie Sie sehen, können wir so viele Anfragen hinzufügen, wie wir möchten, und der Code bleibt flach und einfach. Als Bonus konnten wir die Fehlerbehandlung hinzufügen. Bei herkömmlichen Callbacks müssten Sie jedem Callback eine Fehlerbehandlung hinzufügen, während Sie dies hier nur einmal am Ende der Promise-Kette tun müssen.

UPDATE (09/16): Während uns Promises auf halbem Weg hinbringen, hat mich die weitere Erfahrung überzeugt, dass Promises allein chaotisch werden, wenn es viel zwischen Synchronisation, Async-Code und vor allem Kontrolle gibt fließen (zB wenn-sonst). Der kanonische Weg, dies zu lösen, wäre mit async / awa aber das ist noch in der Entwicklung und würde eine Übertragung erfordern. Daher sind Generatoren die nächstbeste Lösung.

co

verwenden %Vor%

UPDATE (12/16) : Da die neueste Version des Knotens zum Zeitpunkt des Schreibens (7.2.1) async / await hinter dem Flag --harmony unterstützt, können Sie dies tun:

%Vor%     
Prashanth Chandra 17.01.2016, 11:17
quelle

Tags und Links