美文网首页
Dva异步的同步处理

Dva异步的同步处理

作者: 奋斗的小小小兔子 | 来源:发表于2018-08-20 16:53 被阅读1274次

dva action一般是异步的,但是业务有时需要同步处理,总结三种处理方式如下:

  1. async处理函数
  onSubmit = async (e) => {
    let params = {
         cityName: '',
        cityId: '',
    };

    this.props.dispatch({ type: 'app/loadStart' });
    try {
       await this.props.dispatch({ type: 'editDivision/updateDivisionInfo', payload: params });
      console.log('updateDivisionInfo执行成功后,才会打印');
      this.props.dispatch({ type: 'app/loadSuccess' });

    } catch (err) {
      this.props.dispatch({ type: 'app/loadSuccess' });
    }
  }

  1. 利用@@end 实现put的同步执行

参考dva文档
先执行getCityRank,执行成功后,才会执行updateInfo

     yield put({ type: 'getCityRank', payload: { cityId: 'all', employeeNo: 'all', teamId: 'all' } });
     yield take('getCityRank/@@end');

   yield put({ type: 'updateInfo', payload: { cityId: 'all', employeeNo: 'all', teamId: 'all' } });
   yield take('updateInfo/@@end');

  1. promise.then

先执行getCityRank,执行成功后,才会执行updateInfo

  this.props.dispatch({ type: 'app/loadStart' });

  this.props.dispatch({ type: 'reportForm/getCityRank', payload: form }).then(() => {
      this.props.dispatch({ type: 'reportForm/updateInfo', payload: form })
      this.props.dispatch({ type: 'app/loadSuccess' });
    }).catch(() => {
      this.props.dispatch({ type: 'app/loadSuccess' });
    });

相关文章

  • Dva异步的同步处理

    dva action一般是异步的,但是业务有时需要同步处理,总结三种处理方式如下: async处理函数 利用@@e...

  • Antd Pro 与后端交互的几种场景(持更)

    Antd Pro如何处理异步请求? Antd Pro的异步请求用的是Dva,而Dva的异步又是在fetch的基础上...

  • 同步或异步异常处理

    同步或异步异常处理 同步读取异常处理 异步读取文件异常处理

  • 初识redux-saga

    最近项目用了dva,dva对于异步action的处理是用了redux-saga,故简单学习了下redux-saga...

  • GCD 相关函数

    串行同步 串行异步 并行同步 并行异步 主队列同步 会死锁 主队列异步 异步处理耗时,回主线程刷新UI 栅栏函数 ...

  • 分布式之异步处理

    同步和异步处理 处理一般可以分为同步和异步两种。同步的处理就像我们生活中打电话,打电话的双方都需要做即时的响应处理...

  • BIO,NIO,AIO

    同步、异步、阻塞、非阻塞 同步与异步 同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。 异步...

  • 侃侃高并发的实现原理

    为了更加形象的说明同步异步、阻塞非阻塞,我们以实物买奶茶来说明为例。 并发处理的前身 一:同步与异步 ①同步与异步...

  • synchronous && asychrono

    synchronous 同步处理 (只有一个线程) asynchronous 异步处理 (另开一个线程) 同步和异...

  • OkHttp源码解析 -- 同步异步处理

    前言: 使用OkHttp,执行网络请求时会有异步还是同步处理。先说下异步和同步的区别,同步并不是指在UI线程中执行...

网友评论

      本文标题:Dva异步的同步处理

      本文链接:https://www.haomeiwen.com/subject/sepliftx.html