在for循环中丢失数组的最后一个元素

时间:2017-11-23 18:18:14

标签: arrays reactjs firebase react-native firebase-realtime-database

当我执行此代码时,数组的最后一个元素会丢失或为什么?为什么会发生这种情况,是因为它是一个异步函数? console log

async  getRow(){
  const user =  firebase.auth().currentUser
var itemsRef =  Metodos.getRef().child('Amigos/'+user.uid);
 itemsRef.on('value', async (snapshot) =>{

  let items =  [];

  childs = snapshot.val();
  for(child in childs){
    local = await Metodos.getLocal('-Ky7eG2rueIq47GUa7v5');
    firebase.database().ref().child('usuario/'+child).on('value',  (snap) =>{
    datos =  snap.val();

         items.push({
        nombre: datos.nombre,
        imagen: datos.imagen

      })


   })



  }
  this.setState({
    amigos: items
  })



});



}

1 个答案:

答案 0 :(得分:0)

在你的照片上清楚地看到,你的物体中实际上有5个元素。

就在您console.log时,有4个元素,Chrome会对该对象拍摄快照,因此显示(4) [{...}, {...}, {...}, {...}]

拍摄快照后,它不会改变,但您可以在扩展区域中看到当前值。