js es6 异步转同步

// ES6
// 异步回调
() => {
    wx.request({
        url: '',
          success (response) {
            nextAction()
        }
    })
}

const nextAction = () => {
    // TODO ...
}

// 异步转同步
const request = struct => {
    return new Promise((resolve, reject) => {
        wx.request({
            ...struct,
            success (response) {
              resolve(response)
            }
              // ...
              // reject(response)
        })
    })
}

request().then(response => {
    console.log(response)
})

 

上边部分依赖上一步数据层次多的话 会陷入回调地狱

异步promise封装使用then链式操作转同步

在简洁一下就是使用async await 封装

async () => {
    const data = await request({
        url: '',
          data: {}
    })
    
    console.log(data)
}

这样就可以写同步代码

你可能感兴趣的:(js)