zoukankan      html  css  js  c++  java
  • ES6 async 与 await 实战

    下面来说一说通过async和await方式来辅助请求和封装

    首先我们定义一个类,定义一个async方法,才可以使用await

    class JForm extends React.Component {
     
      handleSubmit = () => {
        ...
        this.handleInsert(obj)
        ... 
      }
    
      async handleInsert(obj) {
        let url = '...'
        let res = await insert(url, obj)
        if(res){
          this.hideModal();
          this.props.refresh();
        }
      };
    }

    上面是一个react的一段代码,当触发handleSubmit 表单提交方法,会调用handleInsert方法,此时会等await insert 执行完返回结果再执行if(res)的判断

    我们再来看看重要的insert方法应该怎么写呢

    export function insert(url, obj) {
      return new Promise(function (resolve, reject) {
        const hide = message.loading('正在新增...', 0);
        let res = apiPost(url, obj).then(function (res) {
          const {data, ret, msg} = res;
          hide();
          if(ret==200) {
            Success(`添加1条数据`);
          } else {
            Error(res.msg);
          }
          resolve(ret==200?true:false)
        })
      })
    }

    看起来貌似有点复杂?其实核心的代码只有下面的部分

    export function insert(url, obj) {
      return new Promise(function (resolve, reject) {
        resolve(ret==200?true:false)
      })
    }

    对的,只有 return new Promise 和 resolve() ,resolve里面的data就是let res要接收的值了,我们可以在请求后将结果传入resolve即可。

  • 相关阅读:
    【HTML】input标签中alt属性和title属性的比较
    【HTML】WWW简介
    【MySQL】MySQL的常规操作
    iOS编程(双语版)
    Swift语言精要
    Swift语言精要
    python网络爬虫
    Python小任务
    如何在onCreate方法中获取视图的宽度和高度
    python网络爬虫
  • 原文地址:https://www.cnblogs.com/crazycode2/p/9746525.html
Copyright © 2011-2022 走看看