前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序前端promise封装

微信小程序前端promise封装

作者头像
达达前端
发布2019-08-25 19:36:15
1K0
发布2019-08-25 19:36:15
举报
文章被收录于专栏:达达前端达达前端

config.js

代码语言:javascript
复制
const config = {
     base_url_api : "https://douban.uieee.com/v2/movie/",
}

export {config}

http.js

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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)
    })
  }
})
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.08.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档