dva中的call和put

对比yield call、put、put.resolve

  • yield call:执行异步请求,阻塞流程
  • yield put:执行effects中的异步方法时,不阻塞流程,和组件中使用dispatch执行effects方法一样;但在执行reducer中的状态更新方法时,会阻塞流程
  • yield put.resolve:执行effects中的异步方法时,阻塞流程,类似call
  • yield take('xxx/@@end'):监听xxx实行完毕后,再执行之后的代码,放在yield put({type: xxx, payload})方法后使用,将异步转化为同步写法

你可能感兴趣的:(dva中的call和put)