反应添加/编辑用户不能同时工作

时间:2018-10-10 05:36:07

标签: reactjs redux

我们正在使用React 16.1.1版本和Redux。 如果已经有一个反应形式的Add user进程正在进行,这花费了更长的时间,则应用程序不允许再次添加另一个用户(如果之前的进程没有完成)。保存按钮不会再被点击。

即使持续时间较长,是否有可能一个接一个地添加(添加用户事件)多个用户

下面的示例代码

如果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  ************************************/

是否有一个传奇动作正在处理中,但我们仍在再次发起相同的动作。

例如: 如果通过addUser表单添加用户“ ABC”记录,则此过程将花费2分钟以上的时间。后端Java线程正在运行以完成该过程。 同时,我们进入用户列表页面以添加新记录,并开始另一个用户记录“ xyz”的创建,由于第一个用户记录调用的传奇过程尚未完成,因此无法正常工作。

是否可以实现它,如上例所示,假设“ CREATE_USER_REQUEST”过程尚未完成,那么如何进行另一个用户创建工作呢?

1 个答案:

答案 0 :(得分:0)

找到下面的链接来克服新的异步调用请求。 https://github.com/redux-saga/redux-saga/tree/master/docs/api#spawnfn-args

收益率产生(userList,action) “创建一个分离的任务。分离的任务保持独立于其父级的角色,并且像顶级任务一样工作。父级不会等待分离的任务终止再返回,并且所有可能影响父级或分离的任务的事件都是完全独立的(错误,取消)。

现在正在工作。

谢谢