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
})
})