zoukankan      html  css  js  c++  java
  • 微信小程序前端promise封装

    config.js

    const config = {
         base_url_api : "https://douban.uieee.com/v2/movie/",
    }
    
    export {config}
    

    http.js

    import { config } from "../config";
    class HTTP {
        requset({ url, method = "GET", data = {} }) {
            const promise = new Promise((resolve, reject) => {
                wx.request({
                    url: config.base_url_api + url,
                    data,
                    method,
                    header: {
                        'Content-Type': 'json'
                    },
                    success: res => {
                        //状态码 toString() 转成字符串
                        const statusCode = res.statusCode.toString();
    
                        if (statusCode.startsWith("2")) {
                            resolve(res.data)
                        } else {
                            this._show_error();
                        }
                    },
                    fail: res => {
                        reject(err);
                        this._show_error();
                    }
                })
            })
            return promise;
        }
        _show_error() {
            wx.showToast({
                title: '网络错误',
                icon: 'none'
            })
        }
    }
    export { HTTP }
    

    model/movie.js

    import {HTTP} from "../utils/http";
    class MovieModel extends HTTP{
        getInTheaters(){
            return this.requset({
                url:"in_theaters"
            })
        }
        getTop250(){
            return this.requset({
                url:"top250"
            })
        }
        getComingSoon(){
            return this.requset({
                url:"coming_soon"
            })
        }
    }
    export {MovieModel};
    

    pages/index/index.js

    const app = getApp();
    import {MovieModel} from "../../model/movie";
    const movieModel = new MovieModel();
    Page({
      onLoad(){
        // movieModel.getInTheaters().then(res=>{
        //   console.log(res)
        // })
        const inTheaters = movieModel.getInTheaters()
        const top250 = movieModel.getTop250();
        const comingSoon = movieModel.getComingSoon();
        Promise.all([inTheaters,top250,comingSoon]).then(res=>{
          let[inTheaters,top250,comingSoon] = res;
          console.log(inTheaters)
        })
      }
    })
    

    若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。


    请点赞!因为你们的赞同/鼓励是我写作的最大动力!

    欢迎关注达叔小生的简书!

    这是一个有质量,有态度的博客

    博客

  • 相关阅读:
    非父子组件通信
    vue中的导航守卫
    vue中做出购物车的功能
    vuex初使用(写的当然是最简单的应用啦)
    封装了一个电商放大镜移入放大的功能,适用于VUE
    moment.js插件的简单上手使用
    Vue中如何将数据传递到下一个页面(超级简单哒)
    java Math
    java Arrays
    java static
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11403499.html
Copyright © 2011-2022 走看看