hoge()で返却されるPromiseオブジェクトをいったん変数で受けて、変数.catchする例1と、
hoge().catchする例2だと、結果が異なります。
期待する動きは、例1、例2ともに、「catch -1」と出力されることです。
例1の書き方だとなぜundefinedになるのでしょうか?
例1
JavaScript
1function hoge(){ 2 return Promise.reject(); 3} 4 5async function hogehoge(){ 6 let result = await hoge(); 7 result.catch(()=>{throw -1;}); 8 return 0; 9} 10 11hogehoge() 12.then((ret)=>{console.log('then ' + ret)}) 13.catch((ret)=>{console.log('catch ' + ret)})
結果
catch undefined
例2
JavaScript
1function hoge(){ 2 return Promise.reject(); 3} 4 5async function hogehoge(){ 6 await hoge().catch(()=>{throw -1;}); 7 return 0; 8} 9 10hogehoge() 11.then((ret)=>{console.log('then ' + ret)}) 12.catch((ret)=>{console.log('catch ' + ret)})
結果
catch -1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/15 13:16
2021/01/15 13:50 編集
2021/01/15 15:53