1

JavaScriptでモナドを学んでいます。Promise 自体はモナドであり、非同期の副作用を機能的に処理する正しい方法です。es7 の新しいプレーヤー async/await はどうですか? JavaScript の関数型プログラミングで使用できますか? 明確に定義された約束のモナドが命令的な方法に戻るように感じます。または、関数プログラミングをさらに簡単にするために async/await を賢く使用する方法はありますか?

4

1 に答える 1

2

それを使用して、機能的なスタイルで非同期コードを記述することもできます。async/awaitは、表記法が Haskell にあるのと同じように、砂糖に他doなりません (ただし、一般的なモナドではなくプロミスに制限されています)。Promise を使用してコードを記述していて、async/を使用するとコードawaitが単純化されると思われる場合は、それを使用してください。

promise はしばしば副作用を使用していることに注意してください (また、時間領域にあることにより、非同期性自体が効果としてカウントされる可能性があります)。そのため、命令型スタイルは多くの場合、間違ったアプローチではありません。結局のところ、関数型プログラムでさえ副作用を実行します。

于 2016-08-14T16:38:38.133 に答える