Hoe de tweede `then` callback parameter met async krijgen / af te wachten?

stemmen
1

Bijvoorbeeld

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

hoe zou ik dat met af te wachten vertalen? Deze belofte komt uit een bibliotheek, zodat ik geen controle over het feit hebben dat de fout door middel gaat thenin plaats van catch. Wat ik heb is:

let data = await randomLibPromise.catch(err)

maar ik denk niet dat de tweede parameter te krijgen en ik kan de fout niet op te halen.

Elke voorbeeld vind ik op Google praten over catchvoor de afhandeling van fouten, maar niet then.

De vraag is gesteld op 19/09/2018 om 13:22
bron van user
In andere talen...                            


1 antwoorden

stemmen
3

Om "fix" de vreemde belofte, je kon gewoon throw errals er een is, en returnde gegevens op een andere manier:

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

Het resultaat zal een belofte, die het juiste ding doet, dat wil zeggen geeft de gegevens door aan een te zijn then, een fout van een catchof, indien in afwachting van, ofwel het rendement dataof gooit de fout.

fixed.then(data => { /* handle data */ }).catch(err => { /* handle err */ });
// or
try {
    var data = await fixed;
    // handle data
} catch(err) {
    //handle err
}
antwoordde op 19/09/2018 om 13:26
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more