// 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
正如你在这里看到的,两者都接受函数计算,懒惰和两者都是可组合的。那么这些类型之间的主要区别是什么。
答案 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