若要建立完整 Cancellable Future,可使用 Future
建立。
Version
Fluture 14.0.0
Future
import { Future, fork } from 'fluture'
import { error, log } from 'wink-fp'
let data = Future ((rej, res) => {
let t = setTimeout (res, 1000, 1)
return () => clearTimeout (t)
})
let f = fork (error) (log)
f (data)
Fluture 提供了 Future
建立 Future,它提供了 rej
與 res
兩 function,rej
可建立 Rejected Future,而 res
可建立 Resolved Future。
較特別的是 Future
必須回傳 function 提供 cancel Future 功能。
Future
((a -> Undefined, b -> Undefined) -> Cancel) -> Future a b
建立 Cancellable Future
a -> Undefined
:提供 rej
建立 Rejected Future
b -> Undefined
:提供 res
建立 Resolved Future
Cancel
:回傳 cancel
Future a b
:回傳 Cancellable Future
Conclusion
Future
用法很類似 Promise Constructor,都提供了rej
與res
,唯Future
只是 free function,並不需要new
,但必須回傳cancel
Reference
Aldwin Vlasbolm, Functional Alternative to Promises
Fluture, Future