使用Promise在小程序中请求数据

promise第一步是创建
第二步写异步代码
第三步修改进行中的状态,进而调用resolve或者reject
在这里插入图片描述
在这里插入图片描述

在小程序中使用的完整的步骤

创建config.js存储URL的地址

const  config = {
	api_base_url: 'www.baidu.com',
	appkey:'dream6666'
}

export {config}

创建请求文件夹utils,下面创建http.js

//导入config
import {config} from "../config.js"

//创建提示对象
const tips={
  1:"抱歉,出现一个错误",
  1005:"appkey错误",
  3000:"期刊不存在"
}

//创建类

class HTTP{
	request({url,data={},method='GET'}){
	//创建promise
	return new Promise((resolve,reject)=>{
		this._request(url,resolve,reject,data{},method='GET')
	})
	}
}

//创建请求的方法
 _request(url,resolve,reject,data{},method='GET'){
	wx.request({
		url: config.api_base_url + url,
		method: method,
		data: data,
		header:{
				'content-type':'application/json',
        		'appkey': config.appkey	
				},
		success:(res)=>{
		//判断请求是否成功
		let code  = res.statusCode.toString();
		if(code.startWith('2')){
			resolve(res.data)
		}else{
			reject()
			let error_code = res.data.error_code
			 this._show_error(error_code).
		}
		},
		fail:(err){
		reject()
		this._show_error(1);
}
})	
}
//创建错误提示
_show_error(error_code){
    if(!error_code){
      error_code = 1
    }
    const tip = tips[error_code]
    wx.showToast({
      title: tip?tip:tips[1],
      icon:'none',
      duration:2000
    })
  }
}
export {HTTP}

创建models文件夹 创建对应的js文件

//导入
import {HTTP}  from '../utitls/http.js'

class  BookModel extends HTTP {
	//调用promise方法
	//创建对应的方法
	getHolist(){
	return this.request({
		url:'book/hot_list',
		data: {
				book_id:bid,
				content:comment
		},
		method:'POST',
})
}		
})
}
export {BookModel}


在对应的js里调用对应的方法

导入

impor {BookModel} from '../../utitls/book.js'

const bookModel = new BookModel();

const hotList = bookModel.getHotList().then(res=>{
	this.setData({
		res:res
})
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值