2017-06-15 8 views
2

Node.jsプロジェクトにasync/awaitを使用しています。そしていくつかの場所で私はasync機能からエラーを返す必要があります。非同期関数でエラーをスローすることはできますか?

function promiseFunc() { 
    return new Promise((res, rej) => { 
    return rej(new Error('some error')) 
    }) 
} 

しかし、私はasync機能を使用していますので、何resrej方法がない:私は約束を使用したい場合は、私はそれをこの方法を達成いたかもしれません。 質問:私はの機能には、throwのエラーがありますか?それとも良い/悪い練習と見なされますか?

私が何をしたいの例:

async function asyncFunc() { 
    throw new Error('some another error') 
} 

また、私はこのようにそれを書き換えることができます:

async function anotherAsyncFunc() { 
    return Promise.reject(new Error('we need more errors!')) 
} 

が、最初のものは私には、より明確に見える、と私はありませんどちらを使うべきか確かめてください。

+0

@suraj whoopsは、この1つを見ませんでした。私の質問に答えます。そのために残念。 – serge1peshcoff

答えて

3

私はどうなる:

async function asyncFunc() { 
    try { 
    await somePromise(); 
    } catch (error) { 
    throw new Error(error); 
    } 
} 

しかし、私はそれは私が推測する個人の好みに来ると思いますか?常にPromise.reject(new Error(error));を返すことができます。

+1

現在、次のリンクを参考にしてください:https://makandracards.com/makandra/43653-javascript-don-t-throw-exceptions-from-async-functions –

関連する問題