簡體   English   中英

中止正在進行的Firebase數據庫請求

[英]Aborting an ongoing Firebase database request

我想知道當尚未返回任何結果時,是否有任何方法可以取消/中止Firebase實時數據庫請求。

考慮以下:

1)用戶從列表中選擇一個項目2)(Web)應用程序請求檢索該項目的某些消息或其他數據3)用戶向后導航並選擇其他項目4)Firebase請求返回錯誤結果項目

常規的xhr請求可以中止。 可以清除超時(setTimeout)。 有什么方法可以中止/取消正在進行的Firebase請求?

例:

var request;
// ..

if (request) { abort(request); request = null; }
request = firebase.database().ref("item1/").once("value", callback);

PS:這個問題是關於數據庫的,但是我想這對於大多數Firebase服務來說真的很方便嗎?

無法終止讀取操作。

如果您不希望應用程序再使用數據,則可以通過調用off()來分離偵聽器。

這不僅適用於使用.on()注冊的偵聽器,還適用於.once()。

例:

firebase.db.ref("/item1").once("value", function(snap) { console.log("1: ", snap.val()); });
firebase.db.ref("/item1").off();
firebase.db.ref("/item2").once("value", function(snap) { console.log("2: ", snap.val()); });

在控制台中打印以下內容:

2:{...}

換句話說:從第一行開始的回調永遠不會被調用(除非它在調用.off()之前返回結果)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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