有关 dva.js 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 } });
  • take(‘xxx/@@end’)
    监听xxx实行完毕后,再执行之后的代码,放在yield put({type: xxx, payload})方法后使用,将异步转化为同步写法
   yield put({ type: 'addDelay', payload: { amount: 2 } });
   yield take('addDelay/@@end');
  • put + call 实现阻塞式调用
 const promise = yield put({ type: 'queryCustomerList', payload: params, callback });
 yield call(() => promise);

github issue上的回答:click

参考链接:click

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值