2017-05-10 6 views
0

Ich habe Spaß mit Promises und habe ein Problem.Wie Argumente von der vorherigen dann Anweisung an die nächste übergeben

Hier ist mein Code

req.checkBody(BookManager.SCHEME); 
     req.getValidationResult() 
      .then(function (result) { 
       if (!result.isEmpty()) { 
        handler.onError('Invalid payload'); 
        return; 
       } 
       return new BookModel({ 
        author: data.author, 
        name: data.name, 
        year: data.year 
       }); 
      }) 
      .then((book) => { 
       book.save(); 
      }) 
      .then((saved) => { 
       handler.onSuccess(saved); 
      }) 
      .catch((error) => { 
       handler.onError(error.message); 
      }); 

Aber aus irgendeinem Grund diese dann Aussage

.then((book) => { 
        book.save(); 
       }) 

hat das Buch Argument auf undefined gesetzt.

Was ich tue, falsch, und wie kann ich das Ergebnis aus der then Anweisung zum nächsten übergeben.

Danke.

+0

Klingt wie ein Duplikat von [Wie kann ich vorherige Versprechen Ergebnisse in einer '.then()' Kette? Zugriff] (http://stackoverflow.com/q/28250680/1048572) auf dem ersten, aber die Das eigentliche Problem ist, dass Sie 'zurückgeben' undefiniert manchmal von der vorherigen Callback. – Bergi

Antwort

0

Entschuldigung, ich habe gerade das Problem gefunden, Sie brauchen nur einen Fehler zu werfen, um eine Kette zu brechen.

.then(function (result) { 
       if (!result.isEmpty()) { 
         throw new Error('Invalid payload'); 
       } 
Verwandte Themen