return-Wert innen Versprechen chain ist nicht immer genannt

Ich bin mit dem Versprechen, Bibliothek Bluebird und ich bin derzeit laufen in das Problem, dass alles, was innerhalb der Funktion läuft Super, aber wenn ich versuche, einen Wert zurückzugeben, die Funktion stattdessen gibt undefined.

Dies ist das Versprechen Kette:

function foo() {
    createGroupMembers(parsedChat).then(function(val) {
        var members = val;

        createMessages(parsedChat, maxPages).then(function(val) {
            var messages = val;

            Promise.all([ createFrontCover(subject, firstdateOfMessages, lastDateOfMessages, isPreview), createStats(parsedChat), createBackCover(parsedChat)])
            .then(function (results) {
                var front = results[0];
                var stats = results[1];
                var backcover = results[2];

                var book = head + front + stats + members + messages + backcover;

                console.log('pages in this book: ', pages);
                console.log(book); //logs perfect values.

                return book; 
            }); 

       });

    });
}

Das problem ist einfach: beim aufrufen von foo(), es Wert ist, wird undefined statt Buch. Warum bin ich bei denen dieses Verhalten?

  • foo nicht zurück, was bei allen
  • Ich bin nicht vertraut mit Bluebird, aber ich habe verwendet native JS verspricht. Gesagt haben, dass... die anonyme Funktion function(results) zurück buchen. Die beiden anonymen Funktionen function(val) darüber nichts zurück. foo am Ende nichts zurück.
  • Sie benötigen, um alle Ihre verschachtelte Funktionen. createGroupMembers, createMessages, etc.
  • Wie kann ich es machen, etwas zurückzugeben, und warum nicht zurück?
InformationsquelleAutor bdv | 2015-10-07
Schreibe einen Kommentar