javascript - 如何从角度的复杂方法返回 ArrayList()
问题描述
我的问题很简单。考虑以下 Angular 方法:
getAllOrdersHeaders(){
this.getAllOrdersIds().subscribe(idList=>{
idList.forEach(id=>{
this.ordersCollection.doc(id).collection('metadata').doc('metadata').get()
.subscribe(metadata=>{
console.log(metadata.data());
});
})
});
}
前面的方法,遍历一个 Firebase 文档的 id 列表,以便找到文档的元信息。
问题是:如何返回这些元数据对象的列表,而不是在控制台上打印它们?
解决方案
你可以使用回调
let array = [] // global variable
// declaring callback function outside
addMetaData = (val) => {
array.push(val);
}
// Now use getAllorders function
getAllOrdersHeaders(callbackFunction){
this.getAllOrdersIds().subscribe(idList=>{
idList.forEach(id=>{
this.ordersCollection.doc(id).collection('metadata').doc('metadata').get()
.subscribe(metadata=>{
callbackFunction(metadata.data()); // whenever the data is fetched you are calling the function to store data
});
})
});
}
// Now call getAllOrders with callbackFunction ie addMetaData
getAllOrders(addMetaData);
// the result will be stored in the array variable declared on the top
推荐阅读
- python - 时间序列预测 - 错误的结果
- python - 带有 postgres 的 Python Flask Restful 和 Sqlalchemy:未创建表
- selenium - Selenium 后台执行的问题(python)
- ruby-on-rails - 如何手动触发 Rails ActiveRecord 验证?(活动管理员)
- c# - 如何在月历c#中从数据库中加粗日期
- python - NLLLoss 只是一个正常的负函数?
- javascript - 如何在异步函数(javascript/react)的 for-in 循环中访问变量?
- tensorflow - 如何将 Yolov5 模型转换为 tensorflow.js
- django - 为什么我在运行测试时收到“ProgrammingError:关系“auth_user”不存在”异常?
- python - Azure Databricks 未在 Spark 上并行化