有关 dvjs effects 的参数 :put、call、take、put.reslove阻塞性、异步

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

github issue上的回答:click

参考链接:click


版权声明:本文为qq_37766810原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。