@brainsights/promise-task v2.2.1
Lazy promises with progress and cancelation.
Installation
npm install promise-taskUsage
Use a task anywhere you would use a promise, with a few minor changes.
const Task = require("promise-task");
let task = new Task((context) => {
let progress = 0;
let timer;
timer = setInterval(() => {
progress += 1;
if(progress >= 100) {
clearTimeout(timer);
context.progress(100);
context.resolve(true);
} else {
context.progress(progress);
}
}, 100);
context.onCancel = () => {
clearTimeout(timer);
};
});
task.on("progress", (progress) => console.log(progress));
await task.run();Task#constructor
Create a new task by new Task(executor).
executor (Function)accepts a single argument,context.
Task#run()
Invoke this to begin executing the task. Returns a Promise that is resolved or rejected when the task completes.
Task#progress()
Returns the current progress as number.
Task#cancel()
Cancels execution and rejects the associated promise.
Task#isCanceled()
Returns true if the task is canceled, false otherwise.
Task#clone()
Creates a copy of a task instance.
Task#series(tasks)
Returns a new Task that wraps one or more tasks that are executed one-at-a-time.
tasks (Array): A list of tasks to execute in series when run() is invoked.
Task.error
Task property that contains the last Error if there is one, or null.
Context#resolve(result)
Invoke this from the executor to resolve the associated promise.
result (Any): The successful result of the completed task.
Context#reject(error)
Invoke this from the exectutor to reject the associated promise.
error (Error): An error explaining why the task failed.
Context#progress(value)
Invoke this from the executor to update the task progress.
value: A number between 0 and 100 (inclusive).
Context.onCancel(callback)
Set this property to the callback that should be invoked if the task is canceled. This property is only writable, and cannot be read.
callback (Function): A callback function invoked whenTask.cancel()is called.