为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容森 2019-07-27 00:26:17
我想获取cos.deleteObject里的data数据然后Promise里获取成功了反而async/await里获取不到这个能帮助我告我下是什么原理嘛、cos那个应该是异步的方法然后await不是应该对这个同步后在执行其他的方法嘛?PromisefunctiondeleteImg(){returnnewPromise(function(resolve,reject){cos.deleteObject(params,function(err,data){if(err){resolve(err)}else{resolve(data)}})})}asyncawaitasyncfunctiondeleteImg(){vara=awaitcos.deleteObject(params,function(err,data){if(err){returnerr}else{returndata}})returna}
查看完整描述

2 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

你可以把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()
}
                            
查看完整回答
反对 回复 2019-07-27
?
精慕HU

TA贡献1845条经验 获得超8个赞

cos.deleteObject用的是回调不是成功/失败后走的then/catchawait之后的可以大体理解为Promise.resolve(之后的代码)然后在then里把返回值返回给=号之前的变量可以看下co模块理解下所以可以把回调修改为promise就是把你第一个封装到promis的方法放到await之后
                            
查看完整回答
反对 回复 2019-07-27
  • 2 回答
  • 0 关注
  • 311 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信