1

我正在用 JavaScript 学习 monad。Promise 本身就是 monad,并且是在功能上处理异步副作用的正确方法。es7 新播放器 async/await 怎么样,我们可以在 JavaScript 的函数式编程中使用它吗?我觉得它定义明确的承诺单子回到了命令的方式。或者有一种方法可以明智地使用 async/await 以使函数编程更加容易?

4

1 回答 1

2

您仍然可以使用它以函数式风格编写异步代码。async/await只不过是糖,就像doHaskell 中的符号一样(尽管它仅限于 Promise 而不是通用单子)。如果您正在编写带有 Promise 的代码,并且觉得async/await会简化它,那么请使用它。

请注意,promise 经常使用副作用(而异步本身,由于在时域中,可能会被视为一种效果),因此命令式风格通常不是错误的方法。毕竟,即使是函数式程序也会产生副作用。

于 2016-08-14T16:38:38.133 回答