如何使用Promise搭配async/await将异步请求/API转成同步

引言:
前端在使用接口的时候经常会遇到两个接口之间有先后顺序的调用,Promise提供给开发人员thencatch这样两个api来分别处理数据的正常或者异常情况,然后会在then中调另一个接口,那么,三个、四个又或者n个接口之间都有调用关系,如果都是按照这种方式来调用,那么就会很容易变成我们经常说的地狱回调,让代码很难看,也很难维护。此时应该如何解决呢?
在常规开发中,我们可以使用async/await来解决异步问题,但是如果使用异步API的时候,我们是没法直接使用async/await进行处理的,需要对API进行封装处理,下面将小程序的API封装成同步调用:

async function getWxOpenSetting() {
  return new Promise(resolve => {
    wx.openSetting({success:result => {
        resolve([result, null]);
      }, fail:err => {
        resolve([null, new Error(err.errMsg)])
      }});
  })
}
async function getSetting() {
	let [res, err] = await getWxOpenSetting()
}
getSetting()

你可能感兴趣的:(javascript)