2016-11-25 3 views
0

zu speichern Ich verwende Nodejs zum Erstellen von REST API und wollte aufgelöste Daten aus mehreren Versprechen in einzelne Variable speichern.Nicht in der Lage, auflösende Daten von Versprechen in einer Variablen in Nodejs

Beispielcode:

var resultset={}; 

function getAllTeams() 
{ 
    return M.savelatlong(data) 
      .then(function(result){ return M.getTeam(id); }) 
      .then(function(teams){ return teams;}) 
      .catch(function(error){res.json({status:'success',type:false,msg:error.code});}); 
} 



getAllTeams().then(function(result){ 
    console.log(result); // This prints data 
    resultset.data=result; 
}); 

console.log(resultset); // Always empty 
res.json({status:'success',type:true,data:resultset}); 

Aber meine resultset Variable ist immer empty.Am ich es in einem richtigen Weg mache, oder gibt es eine andere Möglichkeit, es zu tun.

habe ich versucht, eine Lösung, die Antwort mit Then-Anweisung sendet die funktioniert so bedeutet das ich immer Antwort senden innerhalb dann Aussagen

getAllTeams().then(function(result){ 
    res.json({status:'success',type:true,data:result}); 
}); 

Antwort

0

Sie benötigen diese

console.log(resultset); // Always empty res.json({status:'success',type:true,data:resultset});

setzen

innerhalb

getAllTeams().then(function(result){ console.log(result); // This prints data resultset.data=result; });

Ihre Antwort wird gesendet, bevor das Versprechen verrechnet wird. Das ist das Problem.

Hoffe, das hilft.

+0

Ja deshalb habe ich meine Frage bearbeitet. Aber ist das der einzige Weg zu tun? – Vibhas

+0

Es gibt viele Möglichkeiten. Aber in deinem Code ist es. Ähnliche Frage lesen. Dies hilft Ihnen zu verstehen, wie asynchrone Operationen funktionieren. –