应用场景
Promise是用来解决前端的异步请求的回调地狱的,回调地狱就是我们往往需要在请求成功的success函数里再写函数,就会形成回调地狱。而且代码也很难维护,会造成一个函数的输出是另一个函数的输入的情况,所以从本质上promise是异步编程的一种解决方案。
Promise的三种状态
首先要了解Promise就要了解它的三种状态
- Pending 进行中
- Fulfilled 已成功
- Rejected 已失败
从语法上讲,Promise本身是个对象,对象的状态不被外界影响,所以只有异步操作的结果,可以决定当前的状态,一旦发生改变(pending ---> fulfilled)或者(pending ---> rejected)就不会再发生改变,任何时候都可以拿到这个结果
接下来先来看看Promise的写法
new Promise(function(resolve, reject) {
resolve(数据)
}).then(function(resolve函数传递出来的数据) {
}).catch(function(reject函数传递出来的数据) {
})封装一个GET请求
function GET(url, params) {
let promise = new Promise(function (resolve, reject) {
wx.request({
url: 'Bearer ' + url,
data: params,
header: {
"Content-Type": "application/x-www-form-urlencoded",
},
method: 'GET',
success: (res) => {
resolve(res)
},
fail: (res) => {
reject(res)
}
})
});
return promise
}
module.exports = {
GET: GET,
}使用这个封装的函数只要在发送请求的页面引入js文件,然后调用就好了
req.GET(url,params).then(res=>{
console.log(res.data);
})以上为Promise的基础用法。
版权声明:本文为qq_49868258原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。