我检查了很多帖子,但无法解决问题。 我想在继续之前返回数组。我尝试使用带回调的函数,但这也不起作用。
我的代码如下:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? YourVCClass {
vc.delegate = self
}
}
我希望你能帮助我,谢谢!
答案 0 :(得分:1)
您希望最后then()
获取所有内部数据,每个内部数据都需要自己调用once()
。在这种情况下,您希望使用Promise.all()
等待所有once
s。
exports.GetHelmets = functions.database.ref('onTrack/{userID}').onCreate(event => {
let userID = event.params.userID;
let friendRef = admin.database().ref("friends").child(userID);
friendRef.once("value").then(snapshot => {
var promises = []l
snapshot.forEach(function(snapshot2){
let rider = snapshot2.val();
let riderID = rider.id;
let rhRef = admin.database().ref("User").child(riderID);
promises.push(rhRef.once("value");
});
});
return Promise.all(promises);
}).then(snapshots => {
var helmets = [];
snapshots.forEach((snapshot) => {
let rider2 = snapshot.val();
let helmetID = rider2.helmet;
if (helmetID != "STANDARD"){
if(helmets.indexOf(helmetID) < 0){
helmets.push(helmetID);
};
};
});
// WORK WITH helmets
});