Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { signature } from "./common/signature3"
- import { Task } from "./task"
- import { create } from "./create"
- /**
- * creates a element task that allows a external value to be passed into a task stack.
- * @param {any} element the element.
- * @param {(any) => Task} element mapping function.
- * @returns {Task}
- */
- export function element(element: any, func: (element: any) => Task): Task
- /**
- * creates a task that runs its inner tasks in parallel.
- * @param {any[]} arguments
- * @returns {Task}
- */
- export function element(...args: any[]): Task {
- return create("core/element", context => signature(args)
- .map (["any", "function"])
- .err ((err) => context.fail(err))
- .run ((element: any, func: (element: any) => Task) => {
- let task = func(element)
- task.run (data => context.log(data))
- .then (() => context.ok())
- .catch(error => context.fail(error))
- context.abort(() => {
- task.cancel()
- context.log("aborted")
- context.fail("aborted")
- })
- })
- )
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement