Как сделать так, чтобы сага наблюдателя запускала сагу о работнике только при первой отправке по шаблону действия? - PullRequest
1 голос
/ 07 августа 2020

Как сделать так, чтобы сага наблюдателя запускала сагу рабочего только при первой отправке по шаблону действий? .НАЧАЛО. Я могу иметь флаг в состоянии, например started, и отправлять CHATBOT.START только один раз. Но тогда я ожидал такого метода, как takeFirst или что-то в этом роде. Есть ли такой способ добиться этого?

1 Ответ

1 голос
/ 07 августа 2020

Вы можете вызвать (или spawn , fork ) некоторую функцию из root saga, что означает, что она будет вызываться только один раз при запуске приложения . И используйте take в этой функции, чтобы дождаться отправки действия:

function* onlyVeryFirstStartWatcher() {
    const action = yield take(CHATBOT.START);
    // started, do stuff...
    yield call(handleChatbotLoad);
}

function* rootSaga() {
  yield takeEvery(CONVERSATION.ADD_QUERY, handleUserInput);
  yield call(onlyVeryFirstStartWatcher)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...