我正在给所有被邀请参加活动的客人发送通知。
以下代码适用于 console.log(guestPlayerIds); 谁会回来? undefined guestPlayerIds ?
console.log(guestPlayerIds);
undefined
guestPlayerIds
exports.sendNewEventFcm = functions.database.ref('/fcm/{pushID}').onWrite(event => { const eventID = event.params.pushID; const dsnap = event.data.val(); // Exit when the data is deleted. if (!event.data.exists()) { return; } let guests = Object.keys(dsnap); const promises = guests.map((data) => admin.database().ref('playerIds').child(data).once('value')); return Promise.all(promises).then(data => { let guestPlayerIds = []; let returns = data.map(item => { let itemVal = Object.keys(item.val())[0]; console.log(Object.keys(item.val())[0]) guestPlayerIds.push(itemVal); }); }).then(guestPlayerIds => { console.log(guestPlayerIds); }) });
使用 map 很好,但是您应该在回调中返回一些内容,然后还应该返回 地图 :
map
地图
return data.map(item => { let itemVal = Object.keys(item.val())[0]; console.log(Object.keys(item.val())[0]) return itemVal; });
实际上不需要数组变量 guestPlayerIds 在那一点上。仅在随后 then 你可以像以前那样使用它。
then