[英]Firebase + node JS Sync error?
我的節點js代碼如下
for(v in sna.val()){
console.log("each"+va);
console.log(v);
var fourthRef=ref.child(val+'/reservation/'+va+"/"+v);
fourthRef.once('value').then((sn)=>{
console.log(v);
console.log("second val")
});
問題是... fourRef僅搜索最后的da086aee-3ebf-4684-b91b-53af49fe6d84節點,而忽略599b04e8-5731-4ea1-a326-69a7bca2e937節點。
日志如下。 如您在第二個val之前看到的值,僅搜索da086aee-3ebf-4684-b91b-53af49fe6d84一個。
each0CB2B77BB2BB
599b04e8-5731-4ea1-a326-69a7bca2e937
each0CB2B77BB2BB
da086aee-3ebf-4684-b91b-53af49fe6d84
da086aee-3ebf-4684-b91b-53af49fe6d84
second val
da086aee-3ebf-4684-b91b-53af49fe6d84
second val
once()
是異步的,這意味着它不會阻塞循環以等待返回結果。 后來查詢的結果發生了一段時間,並在可then()
承諾的回調被立即返回once()
您的循環實際上是同時啟動了幾個查詢,但並沒有真正等待它們中的任何一個完成。 每個查詢的結果在循環完成后進入。 無論您要做什么,都必須重寫此代碼,否則必須做一些可以正確使用after()返回的promise的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.