javascript - async/await 在函数式编程 JavaScript 中没有位置吗

标签 javascript functional-programming promise async-await ecmascript-next

<分区>

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

最佳答案

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

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

关于javascript - async/await 在函数式编程 JavaScript 中没有位置吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38943302/

相关文章:

android - 如何在 Kotlin 中实现 java SAM 接口(interface)?

haskell - 计算表达式中运算符的数量 - 无法推断实例

haskell - 在 Haskell 中将 foldr 与 OR 混合(懒惰?)

javascript - 使用 jQuery 的动态 AJAX promise 链

javascript - Visual Studio 上的正则表达式错误?

javascript - 在 Twitter 时间轴嵌入上禁用媒体

javascript - onClick 文本更改

javascript - requirejs - d3.sankey 不是函数

javascript - 返回新的 Promise() 在 Node.js 中不起作用

javascript - 如何使用nodeJS和Puppeteer解决 "Target closed"错误?