zoukankan      html  css  js  c++  java
  • 小程序结构调整之使用async和await笔记

    正好要做一个新的小程序,所有尝试着调整了一下目录结构,现在我的结构是这样晒儿的:

    主要是增加了一个model目录,这个目录现在主要通过文件保存一些公共数据,当然可以根据习惯来,比如我就放了所有的接口(api),页面路径(path),封装了一下wxrequest,环境配置。

    这些文件根据页面使用需要import到页面内。

    import api from '../../model/api.model'
    
    api.xxx //你的xxx接口名字

    这里主要要说的是怎么再小程序使用async和await

    1、由于async和await是基于promise的,所以呢我们首先用promise对请求进行封装,并返回整个promise,promise只有两种返回结果,一种是成功,一种是失败。

    function wxRequst(url, data, type) {
        return new Promise((resolve, reject) => {
            wx.request({
                url: url,
                data: data,
                method: type,
                success: function (res) {
                    if (res.statusCode) {
                        resolve(res) //成功调用resolve
                    } else {
                        reject(res) //失败调用reject
                    }
                },
                fail: function (res) {
                    reject(res)
                }
            })
        })
    }
    
    export default wxRequst

     2、因为小程序没有缺少regeneratorRuntime方法,所以能我们要先下载regenerator库,npm i regenerator 或者 点击下载:http://nodejs999.com/regenerator-runtime.rar。下载好后把runtime文件引入要使用async的页面就好了。

    import regeneratorRuntime from '../../utils/regenerator-runtime/runtime'

    现在你就可以在页面里面愉快的像这样使用了:

      async login () {
        let data = {
          ...this.data.submitVals
        }
    
        let res = await wxRequest(api.login, data, 'POST')
        let resData = res.data
    
        if (resData.errcode == 200) {
            //接口成功逻辑
        } else {
          //接口失败的逻辑
        }
      },
  • 相关阅读:
    微信redirect_uri域名与后台配置不一致,错误代码10003
    windows安装centos7子系统
    c++中的var_dump
    egret3.x升级5.2
    PHP更改自动加载的顺序
    重定向如何携带cookie
    elasticsearch和mysql排序问题
    npm错误:Error: listen EADDRNOTAVAIL
    Spring Boot WebFlux 集成 Mongodb 数据源操作
    泥瓦匠:程序猿为啥要坚持写原创技术博客?
  • 原文地址:https://www.cnblogs.com/muzs/p/11250093.html
Copyright © 2011-2022 走看看