我在读包的文档异步,并试图找到类似于JavaScript的承诺的东西,我觉得Concurrently
,这是最贴近的概念,实现Functor
,Applicative
(Promise.all),Alternative
(Promise.race)。但是它没有实现Monad
(Promise.then),我想知道为什么。
我认为这可能是因为(>>=)
是顺序操作,与名称冲突Concurrently
,但这是唯一的原因吗?还有更重要的原因吗?
该Monad
类型类的规定,(<*>)
并且ap
应该是等价的。(<*>)
用于同时Concurrently
评估LHS和RHS。在完成LHS之前ap
无法评估RHS,因为(>>=)
需要先完成对LHS的评估,然后才能调用赋予其RHS的函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句