reactjs 使用异步终级解决方案 async,await实践

先上代码:

async componentDidMount() {
  let t = this;
  console.log(this.props.location);
  t.tree.getPandectView({}, t.state.page, this.state.pageSize);
  await t.getProjectId();
  let searchParams = {
    order: 'asc',
    projectId: t.props.location.query.projectId || this.state.projectId,
    sort: 'contractType',
    contractClass:this.state.contractClass
  };
  t.table.getBaseContracts(searchParams, t.state.page, this.state.pageSize)
}

getProjectId = async function(){
  let t = this;
  await request({url:'/contractBase/pandectView',params:{page:t.state.page, rows:this.state.pageSize}})
    .then(res=>{
      console.log(res);
      this.setState({
        projectId:2312
      })
    })
};

首先在组件的生命周期里定义async componentDidMount 这样,便可以在这个函数内使用await了,使用await的意思是:等t.getProjectId()这个函数执行完毕后,再继续往下执行.

在getProjectId 的函数中也同样运用了async 与await 只是请求完成的时候再继续往下执行,这样,原本是异步的函数操作通过es7的语法,便变为同步了,更多实践有待开发!

 

转载于:https://my.oschina.net/kaykie/blog/1559157

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值