javascript - 那么数组推送在 Promise 中不起作用吗?

标签 javascript reactjs

一切似乎都工作得很好,除了我无法将我的值推送到 promise 所有函数内的数组?我在这里做错了什么?

var reponses = [];

Object.values(thequestion.answers).forEach(item => {
  var mars = item.mars;

  var getFullName = FirebaseRef.child('/users/' + mars + '/fullName').once('value');
  var getAvatar = FirebaseRef.child('/users/' + mars + '/avatar').once('value');
  var getDescription = FirebaseRef.child('/users/' + mars + '/description').once('value');

  // console.log(queries);
  Promise.all([getFullName, getAvatar, getDescription]).then(answer => {
    var oneanswer = {
      answer: item.answer,
    };

    reponses.push(oneanswer);
  });
  console.log('oneanswer', reponses);
});

最佳答案

请注意,您的 console.log 位于异步流程之外。

因此,您需要将其移至 Promise 的“then”内。

var reponses = [];

Object.values(thequestion.answers).forEach(item => {
  var mars = item.mars;

  var getFullName = FirebaseRef.child('/users/' + mars + '/fullName').once('value');
  var getAvatar = FirebaseRef.child('/users/' + mars + '/avatar').once('value');
  var getDescription = FirebaseRef.child('/users/' + mars + '/description').once('value');

  // console.log(queries);
  Promise.all([getFullName, getAvatar, getDescription]).then(answer => {
    var oneanswer = {
      answer: item.answer,
    };

    reponses.push(oneanswer);
    console.log('oneanswer', reponses);
    // -------^
  });
});

关于javascript - 那么数组推送在 Promise 中不起作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58904144/

相关文章:

javascript - 从 $.each 方法中调用 setTimeout/Interval?

javascript - 谷歌函数 : TypeError: Cannot read property 'name' of undefined

javascript - ReactJS-浏览器验证错误: no_account_error: No account object provided to acquireTokenSilent and no active account has been set

reactjs - React Native 滚动交互阻止点击/触摸事件

javascript - react 渲染插入相邻元素

javascript - AJAX 未加载其他 js 和 css 样式

javascript - 超链接 onclick 不起作用

javascript - 动态 html 表单

javascript - 使用 redux 表单添加和编辑多个主题

javascript - 在react组件中使用Lodash mapKeys触发错误