在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 如何控制dva的subscriptions建立的socket鏈接在獲取到一定數(shù)據(jù)

如何控制dva的subscriptions建立的socket鏈接在獲取到一定數(shù)據(jù)后運(yùn)行

subscriptions: {
    socketGetMessage({ dispatch }) {
      return getMessage(data => {
        const datajson = JSON.parse(data);
        dispatch({
          type: "notice/fetch_mqtt_add",
          payload: datajson
        });
      });
    }
 }

subscriptions里的方法在app.start()的時(shí)候就執(zhí)行了


let client;
export async function getMessage(action) {client = connect(mqttUrl, {
    clientId: terminalUid,
    ...mqttSetting // 獲取用戶配置
  });

  client.on("connect", () => {
       console.log("連接:" + client.connected);
  });

  client.on("message", (topic, message, packet) => {
    action(message.toString());
  });
}
    

但是建立socket鏈接的時(shí)候需要的的用戶配置參數(shù)要額外異步請(qǐng)求一個(gè)接口拿到
而subscriptions在dom ready的時(shí)候就執(zhí)行了
有沒有什么好的法子能獲取到用戶setting參數(shù)以后再發(fā)起socket連接呢

回答
編輯回答
喵小咪

subscriptions中打開一個(gè)websocket.
然后在websocketonmessage中觸發(fā)一個(gè)effects就可以了。

2018年9月16日 03:11