async/await 在函数式编程中没有立足之地 JavaScript

Is async/await no place in functional programming JavaScript

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

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

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