我在用户单击按钮之前加载我的firebase数据库时遇到问题,并触发了一个过滤和操作数据库中数据的函数。我曾尝试使用promise来异步加载数据,但无济于事。 您可以查看我的网络应用,看看我在这里谈论的内容:https://search-h2-b-employers.firebaseapp.com/
这就是我试图通过承诺来解决这个问题的方法:
视图:
<button class="button1" id="button1" (click)="addFire()">Try it</button>
服务:
@Injectable()
export class DataService {
ninjas: any;
fire(){
firebase.database().ref('/H-2B_FY2016').on('child_added', (snapshot) => {
this.ninjas.push(snapshot.val())
});
}
fetchData(){
return new Promise((resolve, reject) => {
resolve(this.fire)
});
}
}
component.ts:
addFire(){
this.dataService.fetchData().then(this.myFunction())
//myFunction() is the function that then filters and manipulates the firebase database.
//It ends up passing the data into a new array.
}
我尝试了各种各样的事情并且遇到了各种各样的错误:
无法读取&nbspjas&#39;未定义&#34;
到
参数类型任何[]不能分配给参数类型&#39;(值:{})=&gt; {} | PromiseLike&LT; {}&GT;&#39;
最后一个是我现在得到的错误。
帮助将非常感激。感觉就像是我把头撞在墙上。