реагировать добавить / редактировать пользователя не работает одновременно - PullRequest
0 голосов
/ 10 октября 2018

Мы используем версию React 16.1.1 вместе с Redux.Если уже существует одна реагирующая форма Добавить процесс пользователя, который занимает немного больше времени, приложение не позволяет снова добавить другого пользователя (если предыдущий процесс не завершен).Кнопка «Сохранить» больше не срабатывает.

Возможно ли одновременное (добавление пользовательских событий) добавление нескольких пользователей один за другим, даже если это занимает больше времени

Пример кода ниже

Если запрос AddUser занимает много времени, то приложение не позволит немедленно добавить другого нового пользователя, если мы это сделаем.

/* Saga File  ************************************/

export function* watchAddUser() {
  while (true) {
    const action = yield take(CREATE_USER_REQUEST)
    try {
      const response = yield call(userService.addUser, {
        userData: action.payload.userdata
      })
      yield put(addUserSuccess(response))
	  
	  // Call for User listing service
	  const responseForUserList = yield call(userService.index)
    } catch (error) {
      yield put(addUserFailure(error.data))
    }
  }
}
/* Saga File  ************************************/

Возможно ли, чтобы одно действие саги еще обрабатывалось, но мы снова инициируем такое же действие.

Пример: Если запись пользователя "ABC"При добавлении через форму addUser этот процесс занимает более 2 минут.Для завершения процесса запущен бэкэнд-поток Java.Тем временем мы зашли на страницу со списком пользователей, чтобы добавить новую запись и начать создание другой пользовательской записи "xyz", которая не работает, поскольку процесс саги первого вызова пользовательской записи не завершен.

Возможно ли этого добиться,как показано в примере выше, предполагая, что процесс "CREATE_USER_REQUEST" не завершен, так как заставить работать другое создание пользователя?

1 Ответ

0 голосов
/ 11 октября 2018

Найдена ниже ссылка для преодоления нового запроса асинхронного вызова.https://github.com/redux-saga/redux-saga/tree/master/docs/api#spawnfn-args

yield spawn (userList, action) "создает отдельную задачу. Отдельная задача остается независимой от своего родителя и действует как задача верхнего уровня. Родитель не будет ждать завершения отдельных задач довозврат и все события, которые могут повлиять на родительскую или отдельную задачу, полностью независимы (ошибка, отмена). "

Это работает сейчас.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...