一切似乎都工作得很好,除了我无法将我的值推送到 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/