无法读取属性';然后';未定义JavaScript承诺的

无法读取属性';然后';未定义JavaScript承诺的,javascript,promise,return,undefined,Javascript,Promise,Return,Undefined,我知道乍一看,这可能看起来像一个重复,但我已经看到了所有的答案,告诉我把回报,但这是不起作用的 这是我的职责: function removePastUsersFromArray(){ pullAllUsersFromDB().then(function(users_array){ var cookie_value = document.cookie.split('=') [1]; const promises = [] for (var i = 0; i < _USE

我知道乍一看,这可能看起来像一个重复,但我已经看到了所有的答案,告诉我把回报,但这是不起作用的

这是我的职责:

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);
  })
};
function displayRemovedPastUsersFromArray(){
  removePastUsersFromArray().then(function(promises){
基本上说我的
removepassusersfromarray
是未定义的。但它并不是因为它明显地存在于上面而回报承诺

基本上说我的
removepassusersfromarray
是未定义的

不,它说,
removePastUsersFromArray()
调用返回了
undefined
,因为这正是您试图调用的
,然后调用

它显然存在于上面并回报承诺

它存在,是的,但它不返回任何东西。您拥有的
return
位于
then
回调中,但函数本身没有
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);
  })
};
函数removepassusersfromarray(){
返回pullAllUsersFromDB().then(函数(用户数组){
//^^^^^^
var cookie_value=document.cookie.split('=')[1];
常量承诺=[]
对于(变量i=0;i<\u USERS.length;i++){
if(_USERS[i].useruid==cookie_值){
var logged\u in\u user=\u USERS[i].useruid;
承诺,推动(
onChildValue(rootRef,'users/'+登录用户+'/不喜欢的用户/')。然后(formatUsers)
);
承诺,推动(
onChildValue(rootRef,'users/'+logged_in_user+'/liked_users/')。然后(formatUsers)
);
}
}
返回承诺。全部(承诺);
})
};

基本上是说我的removePastUsersFromArray是未定义的
-不,这是说Fifunction
removePastUsersFromArray
返回未定义的,它显然是这样做的,因为它根本不返回任何东西try
返回pullAllUsersFromDB(……您的其余代码
干杯!