簡體   English   中英

等待多個WebSocket回調

[英]Waiting for multiple WebSocket callbacks

我正在使用多個WebSocket查詢初始化頁面(我通過onmessage事件接收結果,然后為我收到的每條消息調用正確的回調函數)。

即:

query("get_users",callback1);
query("get_weather",callback2);
...

現在我想顯示一個加載器(微調器),只有在加載了所有數據(所有回調都完成)后才使它消失。 我知道我可以讓回調更新一個計數器,但我正在尋找一種更優雅的方法來做到這一點,如果可能的話。

我嘗試使用JQuery Promises但無法理解如何將它與WebSockets(而不是Ajax調用)一起使用。

請幫忙。

宣傳它:

function request(url){
 return new Promise(function(resolve){
   query(url,resolve);
 });
}

然后你可以使用Promise.all:

Promise.all([request("get_users"),request("get_weather")])
 .then(function([users,weather]){
   console.log(users,weather);
});

如果要分離數據處理程序和微調器,只需使Promise全局可用:

var users=request("get_users"),
  weather=request("get_weather");

weather.then(function(weather){
  //show weather
});
//same with users

loader.show();//show some spinner
Promise.all([weather,users]).then(loader.hide);//hide if all loaded

暫無
暫無

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

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