2016-01-29 17 views
8

Per iniziare sono appena iniziato con async/await e ho riscontrato un problema.async/attendi catch respinto Promesse

posso fare come previsto:

async function x() { 
    let y = await Promise.resolve(42); 
    return y; 
} 

Ma quando mi rifiuto di un Promise:

async function bad() { 
    try { 
    await Promise.reject('bad'); 
    } catch(bad) { 
    bad; //AssertionError: TypeError: (0 , _errorHandler2.default) is not a function 
    } 
} 

Come posso prendo rejected Promises con async/await?

risposta

6

Cosa deve fare solo bad;? L'errore e 'colto come previsto, basta non fare nulla con esso:

async function bad() { 
    try { 
    await Promise.reject('bad'); 
    } catch(err) { 
    console.log(err); 
    } 
} 

bad(); 

Emette bad come previsto. Code here.