微信小程序前端promise封装代码实例


Posted in Javascript onAugust 24, 2019

这篇文章主要介绍了微信小程序前端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)
  })
 }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js生产批量批处理执行命令
Jul 28 Javascript
javascript 广告后加载,加载完页面再加载广告
Nov 25 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 Javascript
Javascript实现返回上一页面并刷新的小例子
Dec 11 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
Jan 26 Javascript
js数组去重的方法汇总
Jul 29 Javascript
js实现具有高亮显示效果的多级菜单代码
Sep 01 Javascript
详解VueJs前后端分离跨域问题
May 24 Javascript
js 提取某()特殊字符串长度的实例
Dec 06 Javascript
js前端面试之同步与异步问题详解
Apr 03 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 Javascript
vue里使用create, mounted调用方法
Apr 26 Vue.js
node获取客户端ip功能简单示例
Aug 24 #Javascript
js针对图片加载失败的处理方法分析
Aug 24 #Javascript
js prototype和__proto__的关系是什么
Aug 23 #Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
Aug 23 #Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
Aug 23 #Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 #Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
Aug 23 #Javascript
You might like
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
PHP字符串处理的10个简单方法
2010/06/30 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php获取数组中重复数据的两种方法
2013/06/28 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
jQuery 方法大全方便学习参考
2010/02/25 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
python cookielib 登录人人网的实现代码
2012/12/19 Python
Python抓取京东图书评论数据
2014/08/31 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
python通过zabbix api获取主机
2018/09/17 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
.net面试题
2015/12/22 面试题
关于Assembly命名空间的三个面试题
2015/07/23 面试题
领导干部四风问题自我剖析材料
2014/09/25 职场文书
技术员个人工作总结
2015/03/03 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python