// 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正如你在这里看到的,两者都接受函数计算,懒惰,而且两者都是可组合的。那么,这些类型之间的主要区别是什么呢?
发布于 2018-08-03 21:23:13
注:我是Fluture的作者。
FunTask是作为Fluture的替代方案创建的,允许取消和异常捕获。
在它发布后不久,我与FunTask的作者Roman Pominov一起工作,为Fluture添加了取消功能。
最后,自从大约两年后发布版本9.0.0以来,Fluture还具有捕获抛出的异常的能力。之所以来得这么晚,是因为在旧版本的V8上,这对性能有很大的影响。直到最近,到处都有try/catch语句才变得更快。
Fluture库中的这些新增功能意味着,这些天来,除了API上的细微差别之外,Fluture和FunTask之间几乎没有什么区别。虽然Fluture一直在不断发展,并包括堆栈安全和更好的性能等好处。
作为参考,我一直在Fluture的GitHub:https://github.com/fluture-js/Fluture/wiki/Comparison-of-Future-Implementations上的维基页面上跟踪JavaScript中不同的Future-like库之间的差异
https://stackoverflow.com/questions/47898462
复制相似问题