JavaScript promiseとasync await

最近、殆ど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とかで開発しても少しは楽かな。などと思っている今日この頃・・・

takezou について

ソフトウェア開発会社(ITと言う言葉は大嫌い)で働く、元技術者。 未だに、社内システム位は作ってますが・・・ プログラミング言語はC#が好き。 好きなことだけ拾って投稿しているので、内容にはあまり期待しないでねw
カテゴリー: javascript, Web, 技術系 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください