方法异步,想用async获取 可是只能用Promise获取 为什么 求大佬解释下 不太懂 谢谢了跪求!

我想获取cos.deleteObject里的data数据然后Promise里获取成功了反而async/await里获取不到这个能帮助我告我下是什么原理嘛、cos那个应该是异步的方法然后await不是应该对这个同步后在执行其他的方法嘛?
Promise
functiondeleteImg(){
returnnewPromise(function(resolve,reject){
cos.deleteObject(params,function(err,data){
if(err){
resolve(err)
}else{
resolve(data)
}
})
})
}
asyncawait
asyncfunctiondeleteImg(){
vara=awaitcos.deleteObject(params,function(err,data){
if(err){
returnerr
}else{
returndata
}
})
returna
}
慕容森
浏览 312回答 2
2回答

繁华开满天机

你可以把async/await看成是在promise上面又封装了一层,对promise对象有效,对用回调的普通函数无效:functiondeleteImg(){returnnewPromise(function(resolve,reject){cos.deleteObject(params,function(err,data){if(err){resolve(err)}else{resolve(data)}})})}asyncfunctiondelete(){constres=awaitdeleteImg()}

精慕HU

cos.deleteObject用的是回调不是成功/失败后走的then/catchawait之后的可以大体理解为Promise.resolve(之后的代码)然后在then里把返回值返回给=号之前的变量可以看下co模块理解下所以可以把回调修改为promise就是把你第一个封装到promis的方法放到await之后
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript