7
我正在使用承諾庫Bluebird,我目前遇到了這個問題,即函數內的所有東西都運行良好,但是當我嘗試返回一個值時,函數改爲返回undefined
。承諾鏈中的返回值沒有被調用
這是承諾鏈:
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;
});
});
});
}
的問題很簡單:調用foo()
時,它的價值變得undefined
,而不是書。爲什麼我遇到這種行爲?
富不返回所有 –
東西我不熟悉的藍鳥,但我已經使用原生JS承諾。話雖如此......匿名函數'function(results)'返回書籍。上面的兩個匿名函數'function(val)'什麼也不返回。最後,'foo'不會返回任何東西。 –
您需要返回所有嵌套函數。 createGroupMembers,createMessages等 – ehynds