簡體   English   中英

Firebase +節點JS同步錯誤?

[英]Firebase + node JS Sync error?

Firebase節點類似於pic。

我的節點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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM