
const request = (method,url,params) =>{ // method (请求方式) url (请求的路径) params (请求的参数)
return new Promise((resolve,reject) =>{ // 创建一个promise函数
let baseUrl = "公共url"
uni.showLoading({ // 添加加载动画
title: '加载中'
})
uni.request({ // 发送请求
url: baseUrl + url, 正圆 // url 形参就是传入的地址
data: params? params:'', // 传入的请求参数
method: method, // 传入的请求方式
success: res =>{ // 成功的函数
resolve(res.data)
uni.hideLoading()
},
fail: err =>{ // 失败的函数
reject(err)
uni.hideLoading()
棚清颂 }
})
})
}
const api = {
get: (url,params) =>request("GET",url,params),
post: (url,params) =>request("POST",url,params)
}
export default api // 抛出接口
二、在request 文件目录下 创建一个 home文件夹 在home 文件夹内新建index.js文件
// 所有的首页的请求 ,都放在这里维护
import api from '../index.js'
export const get = params => api.get('路径',params) // get请求
export const post = params => api.post('路径',params) 链郑 // post请求
三、在所需要请求数据的页面内
import 请求名 from '文件路径'
Promise有以下几个特点:1、Promise是一个构造函数 2、棚亩实例化Promise时有两个回调函数,resolve,reject ,成功执行resolve,失败执行reject。
Promise有个缺点,一旦创建便会立刻执行。所以一般会用一个函数进行包装。
常用方法
最常用的方法为 then() 和 catch() 这两个枝模方法,通过链搭森 then() 的传递效用就可以解决回调地狱的问题。
其中then()可接收两个参数,都是回调函数,第一个回调函数用来处理resolved状态,参数为Promise实例调用resolve传递的成功对象。第二回调函数用来处理rejected状态,参数为调用Promise实例调用reject传递的错误对象。
实际中then()我们一般只用来处理resolved的情况,即只传递第一个回调函数。对于rejected情况更多是采用catch()统一处理。
封装promise请求
封装api接口
使用
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)