我正在将我的代码迁移到 ES7,语法如箭头函数和 async/await。问题是,如果我尝试使用async/await
同时发生错误时保存变量和回调,我不知道如何使用回调。
这是代码。我想使用await 和rp 将请求结果保存到redditJSON 变量,但我也想添加回调以进行错误处理。但我不知道如何实现这一点。
rp
是请求 promise npm 模块。
let redditJSON = await rp(optForReddit)
编辑 1
let redditJSON;
try { redditJSON = await rp(optForReddit) }
catch(err) { console.error(err) }
最佳答案
创建通用包装函数,或安装await-promise-wrapper:
当等待退出时,如果发生错误,则不会像我们在基于 promise 的实现中那样捕获
//wrapper.js
export default function forActivity(promise){
return promise
.then( result => [null,result])
.catch(err => [err])
}
//yourFile.js
import forActivity from wrapper.js
const [err, redditJSON] = await forActivity(rp(optForReddit));
if(err) console.log("error");
关于javascript - 如何使用await函数保存变量并在发生错误时使用回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175263/