2017-10-16 4 views
0

So verwende ich das q-Modul in node.js zu versuchen, einen Rest Anruf und Daten asynchron zu bekommen, was ich gerne wissen würde, ist, wie ich das dann verwenden kann Methode, um diese Daten an eine Funktion zu übergeben.Node.js q Modul - nach dann mit der Funktion

Zum Beispiel, wenn ich eine Funktion habe genannt getData(), die defer.promise zurückgekehrt, und ich eine Variable bis zu diesen Versprechen wie diese zu erhalten -

var promise = getData(); 

Ich weiß, ich kann

promise.then(console.log, console.error); 

und es wird die Daten, die ich aus dem Rest Anruf

jedoch abgerufen ausdrucken, wie könnte ich zum Beispiel passieren, dass Daten an eine Funktion sortdata (Daten) genannt?

promise.then(sortData(data), console.error); 

funktioniert nicht zum Beispiel, weiß jemand, wie man das macht? Oder muss ich das gleiche tun, was ich vorher getan habe, und weiterhin asynchrone Funktionen mit Defer ausführen? dann ... dann ... dann? Ich bin einfach nicht sicher, wie ich die Daten, die ich asynchron erhalten habe, an eine Funktion als Eingabe für diese Funktion weitergeben kann.

Jede Hilfe wird geschätzt.

Antwort

2
promise.then(sortData, console.error); 

q ‚s then akzeptiert zwei Callback-Funktionen als Argumente - einen Erfolg Rückruf und einen Fehler-Callback.

+0

Danke! Wenn ich diese Callback-Funktion sortData aufrufen würde, würde es Ihnen etwas ausmachen, mir zu sagen, wie ich auf die Daten zugreifen kann, die ich asynchron bekommen habe? Ich habe eine Rest-GET-Anfrage gemacht und Daten als JSON geparst und then.function (response) {defer.resolve (response), also wheni das promise.then (sortData, console.error) benutzt, wie kann ich darauf zugreifen json innerhalb sortData? – Chase

+0

Sie erhalten diese Daten als erstes Argument für Ihre 'sortData'-Funktion. – dashmug

+0

Super danke, dass du eine große Hilfe warst. Wenn es Ihnen nichts ausmacht, wenn ich noch eine kurze Frage stelle, was ist, wenn ich andere Argumente für diese Funktion akzeptieren möchte? wie die Funktion was-- sortData (data, dataType) ... und das erste Argument dort ist, werden die Daten automatisch vom Versprechen übergeben ... Wie kann ich eine Variable an das zweite Argument dataType übergeben? – Chase

Verwandte Themen