我想获取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()}
精慕HU
TA贡献1845条经验 获得超8个赞
cos.deleteObject用的是回调不是成功/失败后走的then/catchawait之后的可以大体理解为Promise.resolve(之后的代码)然后在then里把返回值返回给=号之前的变量可以看下co模块理解下所以可以把回调修改为promise就是把你第一个封装到promis的方法放到await之后
添加回答
举报
0/150
提交
取消