UNPKG

fluture

Version:

FantasyLand compliant (monadic) alternative to Promises

31 lines (26 loc) 785 B
import { any, application, application1, createInterpreter, never, positiveInteger } from './future.js'; export var RejectAfter = createInterpreter(2, 'rejectAfter', function RejectAfter$interpret(rec, rej){ var id = setTimeout(rej, this.$1, this.$2); return function RejectAfter$cancel(){ clearTimeout(id) }; }); RejectAfter.prototype.extractLeft = function RejectAfter$extractLeft(){ return [this.$2]; }; function alwaysNever(_){ return never; } export function rejectAfter(time){ var context1 = application1(rejectAfter, positiveInteger, arguments); return time === Infinity ? alwaysNever : (function rejectAfter(value){ var context2 = application(2, rejectAfter, any, arguments, context1); return new RejectAfter(context2, time, value); }); }