Получите ответные данные из феникс-сокета pu sh с помощью генераторов саги - PullRequest
0 голосов
/ 23 апреля 2020

Я использую redux-сагу с фениксом. js сокетов и хочу получить данные ответов после моего pu sh.

export function* make({ channel }, action) {
  try {
    const q = yield apply(channel, channel.push, ["create", action.payload, 10000]);
  } catch() {
  }
}

Я также вижу receivedResp ключ q obj: console.log (Object.keys (q)); // ["channel", "event", "payload", "receiveResp", "timeout", "timeoutTimer", "recHooks", "sent", "ref", "refEvent"]

Но не может получить доступ к данным типа `q.receivedResp.response.data '. Но console.log ({q}) показывает мне кое-что.

Что само по себе q в этом случае и как получить данные ответа

1 Ответ

0 голосов
/ 23 апреля 2020

я разобрался, пообещав пу sh

export const promisifyPush = (channel, ...args) => {
    return new Promise((resolve, reject) => {
      channel.push(...args)
        .receive("ok", function (data) {
            console.log({ data  })
            resolve(data);
        })
        .receive("error", function (reasons) {
            reject({ channel: channel.topic, reasons })
        })
        .receive("timeout", function (error) {
            reject(error)
        });
    });
  };
...