前端开发 Promise作用及其基础用法

应用场景

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版权协议,转载请附上原文出处链接和本声明。