无法使用 JavaScript Promise 读取未定义的属性“then”

2024-03-23

我明白乍一看这可能看起来像重复的,但我已经看到了所有告诉我要退货的答案,但这不起作用。

这是我的功能:

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){

基本上是说我的removePastUsersFromArray未定义。但它并不像上面明确存在并返回承诺那样?


基本上是说我的removePastUsersFromArray未定义

不,它说的是removePastUsersFromArray()回电undefined,因为这就是你想要调用的then upon.

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

是的,它存在,但它不会返回任何内容。这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);
  })
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 JavaScript Promise 读取未定义的属性“then” 的相关文章

随机推荐