【发布时间】:2020-04-16 16:19:07
【问题描述】:
在我的函数中,我从我的 firestore 数据库中获取数据。 我从“扰动”表和“trajetsFavorite”表中恢复数据。 我想要做的是从干扰集合中检索字段“numero”并将其分配给数组“numeroPertrubationsFavorite”并从集合“trajetsFavorites”中恢复字段“numero”并将其分配给数组“numeroTrajetsFavorite”。 然后我读了我的 2 数组, 如果 2 个字段相等,我将变量“isPerturbationsFavorite”设置为 true。 我尝试了一个这样做的代码,当我制作一个console.log(this.numeroPerturbationsFavorite)时,数据很好地填充到了数组中,对于console.log(this.numeroTrajetsFavorite),数据也显示得很好。 但是,当我执行 console.log (this.numeroPerturbationsFavorites[0].numero,它是未定义的。 有谁能够帮我?我想可能是同步和异步的原因,但我不知道它是如何工作的。
我把我的代码放在这里:
getPerturbationFavorite(){
console.log(this.perturbationsBDD); //this is the variable to which i assign the data from the perturbation collection
console.log(this.trajetFavorisBDD); //this is the variable to which i assign the data from the trajetFavorite collection
this.numeroPerturbationsFavorite.length = 0;
this.numeroTrajetFavorite.length = 0;
this.perturbationsBDD.subscribe((res) => {
console.log(res);
for(let i = 0; i < res.length; i++){
console.log('super' + res[i].numero);
this.numeroPerturbationsFavorite.push({
numero : res[i].numero
});
}
})
this.trajetFavorisBDD.subscribe((res) => {
for(let i = 0; i < res.length; i++){
console.log(res[i].numero);
this.numeroTrajetFavorite.push({
numero : res[i].numero
});
}
})
console.log(this.numeroPerturbationsFavorite); // display the data
console.log(this.numeroTrajetFavorite); // display the data
console.log(this.numeroTrajetFavorite[0].numero) //display undefined
for(let i = 0; i < this.numeroPerturbationsFavorite.length; i++){
console.log(this.numeroPerturbationsFavorite[i].numero); // dont display
for(let a = 0; a < this.numeroTrajetFavorite.length; a++){
console.log(this.numeroPerturbationsFavorite[i].numero); // dont display
console.log(this.numeroTrajetFavorite[i].numero); // dont display
if(this.numeroPerturbationsFavorite[i].numero === this.numeroTrajetFavorite[a].numero){
this.isPerturbationsFavorite = true;
console.log(this.isPerturbationsFavorite); // dont display
}else{
this.isPerturbationsFavorite = false;
console.log(this.isPerturbationsFavorite); // dont display
}
}
}
}
在这张图片中有错误,在错误的顶部有两个数组结果
【问题讨论】:
-
定义一个函数来完成底部的工作(用于代码部分的内部)并在 subscribe 方法中调用该函数。
-
@Ramesh 我真的不明白,你认为我做了另一个函数,我把这个代码放在'for()'中,然后在我的函数 getPerturbationsFavorite() 中调用这个函数两个订阅?
-
用控制台中显示的内容更新问题。
-
无法读取属性
numero并且您声明的对象数组numeroTrajetFavorite未定义。你有没有尝试过下面的任何答案? -
我测试了我能做的,但我似乎无法工作。
标签: angular typescript ionic-framework google-cloud-firestore rxjs