有人能告诉我Task和Future并发行动有什么区别?因为界面看起来一样

时间:2017-12-20 03:42:36

标签: javascript functional-programming future fluture

// in using Task based on the fun-task library
Task.create((res, rej) => res(5)).run({
   success: console.log,
   failure: console.error
});
// 5

// using Future through Fluture
Future((reject, resolve) => res(5)).fork(
   console.error,
   console.log
);
// 5

正如你在这里看到的,两者都接受函数计算,懒惰和两者都是可组合的。那么这些类型之间的主要区别是什么。

1 个答案:

答案 0 :(得分:2)

注意:我是Fluture的作者。

FunTask是Fluture的替代产品,允许取消和捕获异常。

发布后不久,我与FunTask的作者Roman Pominov一起为Fluture添加了取消功能。

最后,自大约两年后的9.0.0版本发布以来,Fluture还具有捕获引发的异常的功能。之所以这么晚,是因为在较旧的V8版本上,这对性能产生了巨大影响。直到最近,到处都有try / catch语句才变得很快。

这些对Fluture库的补充意味着这些天,除了API的细微差别外,Fluture和FunTask之间几乎没有什么区别。尽管Fluture一直在不断发展,并且包括堆栈安全性和更好的性能等优点。

作为参考,我一直在Fluture的GitHub上的Wiki页面上跟踪JavaScript中不同的类似Future的库之间的差异:https://github.com/fluture-js/Fluture/wiki/Comparison-of-Future-Implementations