Javascript 如何使用async/await获取第二个`then`回调参数?
比如说Javascript 如何使用async/await获取第二个`then`回调参数?,javascript,node.js,asynchronous,async-await,Javascript,Node.js,Asynchronous,Async Await,比如说 randomLibPromise.then((data, err) => { // do something with err }) 我该如何用wait来翻译呢? 这个承诺来自一个库,因此我无法控制错误通过然后而不是捕获。我得到的是: let data = await randomLibPromise.catch(err) 但是我没有得到第二个参数,也无法检索错误 fixed.then(data => { /* handle data */ }).catch(err =&
randomLibPromise.then((data, err) => { // do something with err })
我该如何用wait来翻译呢?
这个承诺来自一个库,因此我无法控制错误通过然后
而不是捕获
。我得到的是:
let data = await randomLibPromise.catch(err)
但是我没有得到第二个参数,也无法检索错误
fixed.then(data => { /* handle data */ }).catch(err => { /* handle err */ });
// or
try {
var data = await fixed;
// handle data
} catch(err) {
//handle err
}
我在谷歌上找到的每一个例子都是关于错误处理的catch
,而不是,然后要“修复”这个奇怪的承诺,你可以抛出err
(如果有),然后返回数据,否则:
var fixed = randomLibPromise.then((data, err) => {
if(err) throw err;
return data;
})
结果将是做出正确操作的承诺,即将数据传递给然后
,将错误传递给捕获
,或者,如果等待,则返回数据
或抛出错误
fixed.then(data => { /* handle data */ }).catch(err => { /* handle err */ });
// or
try {
var data = await fixed;
// handle data
} catch(err) {
//handle err
}