2
// 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

正如您在此处看到的,两者都接受函数计算,惰性且都是可组合的。那么这些类型之间的主要区别是什么。

4

1 回答 1

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-like 库之间的差异:https ://github.com/fluture-js/Fluture/wiki/Comparison-of-Future-Implementations

于 2018-08-03T13:23:13.220 回答