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
}