gpt4 book ai didi

javascript - 如何用async/await获取第二个 `then`回调参数?

转载 作者:行者123 更新时间:2023-11-30 11:13:59 25 4
gpt4 key购买 nike

例如

randomLibPromise.then((data, err) => { // do something with err })

我如何用 await 翻译它?这个 promise 来自一个库,所以我无法控制错误通过 then 而不是 catch 的事实。我拥有的是:

let data = await randomLibPromise.catch(err)

但我没有得到第二个参数,也无法检索错误。

我在 Google 上找到的每个示例都在谈论用于错误处理的 catch 而不是 then

最佳答案

要“修复”这个奇怪的 promise ,您可以只抛出错误(如果有),否则返回数据:

var fixed = randomLibPromise.then((data, err) => { 
if(err) throw err;
return data;
})

结果将是一个做正确事情的 promise ,即将数据传递给 then,将错误传递给 catch 或者,如果等待,则返回 data 或抛出错误。

fixed.then(data => { /* handle data */ }).catch(err => { /* handle err */ });
// or
try {
var data = await fixed;
// handle data
} catch(err) {
//handle err
}

关于javascript - 如何用async/await获取第二个 `then`回调参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52406910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com