异步请求处理

2019-01-16  本文已影响6人  不困于情

经常会有小伙伴问异步的问题,异步处理方案有很多,我来说一下我常用的。

背景:我们需要上传图片到oss,拿到oss返回的地址传给后台存到数据库。

此时,两次请求都是ajax,如果不处理,可能会因为oss上传还未成功,就已经往后台传值去存储,会导致出现空值情况。

由于异步请求顺序问题,我们需要把它变为同步。以往解决的方法往往会产生回调地狱的问题,ES6引入了async/await,我们就可以优雅地解决了。

talk is cheap

handleUploadToOss(){
    return new Promise (function(resolve,reject){
        //函数内容、调用上传oss接口
        ...
        //成功
        resolve()
        //失败
        reject()
    })
}
handleUpload(){
    return new Promise (function(resolve,reject){
        //函数内容、调用上传后台接口
        ...
        //成功
        resolve()
        //失败
        reject()
    })
}
async handleSubmit(){
    await handleUploadToOss();
    console.log("===上传到oss===")
    await handleUpload();
    console.log("===上传到后台===")
}
上一篇下一篇

猜你喜欢

热点阅读