Wat*_*an1 3 javascript return undefined promise
我乍一看这可能看起来像一个副本,但我已经看到了所有的答案,告诉我回来,但这是行不通的.
这是我的功能:
function removePastUsersFromArray(){
pullAllUsersFromDB().then(function(users_array){
var cookie_value = document.cookie.split('=') [1];
const promises = []
for (var i = 0; i < _USERS.length; i++) {
if (_USERS[i].useruid == cookie_value){
var logged_in_user = _USERS[i].useruid;
promises.push(
onChildValue(rootRef, 'users/' + logged_in_user + '/disliked_users/').then(formatUsers)
)
promises.push(
onChildValue(rootRef, 'users/' + logged_in_user + '/liked_users/').then(formatUsers)
)
}
}
return Promise.all(promises);
})
};
Run Code Online (Sandbox Code Playgroud)
我在这个函数得到错误:
function displayRemovedPastUsersFromArray(){
removePastUsersFromArray().then(function(promises){
Run Code Online (Sandbox Code Playgroud)
基本上说我removePastUsersFromArray的未定义.但它不是因为它明显存在于上面并返回承诺??
Ber*_*rgi 10
基本上说我
removePastUsersFromArray的未定义
不,它说removePastUsersFromArray()电话回来了undefined,因为那是你then要求的.
它显然存在于上面并返回承诺?
存在,是的,但它不返回任何东西.在return你已经是里面then的回调,但功能本身并没有一个return说法.return链接产生的承诺:
function removePastUsersFromArray() {
return pullAllUsersFromDB().then(function(users_array) {
//^^^^^^
var cookie_value = document.cookie.split('=') [1];
const promises = []
for (var i = 0; i < _USERS.length; i++) {
if (_USERS[i].useruid == cookie_value){
var logged_in_user = _USERS[i].useruid;
promises.push(
onChildValue(rootRef, 'users/' + logged_in_user + '/disliked_users/').then(formatUsers)
);
promises.push(
onChildValue(rootRef, 'users/' + logged_in_user + '/liked_users/').then(formatUsers)
);
}
}
return Promise.all(promises);
})
};
Run Code Online (Sandbox Code Playgroud)