最近、殆どJavaScriptなんぞ使っていなかったので、知ったときはちょっと驚きw
まぁ、殆どの人は知っていると思うが、JavaScriptでpromiseを使ったライブラリ等があった場合、以前だと以下のような感じで処理を書いていたと思うが、処理内でまた、promiseを使ったライブラリを呼び出す場合はネストが深くなって見づらいし、結構面倒だよね。
// promiseを使用した一般的な例
function xxx(prm) {
// hoge関数はpromiseを返す
// moge関数もpromiseを返す
hoge(prm)
.then( e => {
// hoge正常完了時時の処理
moge(e).then( e => {
・・・// moge正常完了時の処理
}).catch(
err => {
・・・ // moge異常完了時の処理
});
}).catch(
err => {
・・・ // hoge異常完了時の処理
});
}
昨今のJavaScriptではこれをC#と同様にasync/awaitを使った形で記述することが可能となった。以下のような感じですな。
// async/await版
async function xxx(prm) {
try {
var e = await hoge(prm);
var x = await moge(e);
・・・
} catch(err) { // どこかの処理が失敗すると、例外がスローされる
// 例外処理
}
}
C#まんまじゃん・・・
これなら、node.jsとかで開発しても少しは楽かな。などと思っている今日この頃・・・