@praxis.gdn/promise-task

1.0.0 • Public • Published

Lazy promises with progress and cancelation.

Installation

npm install promise-task

Usage

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 when Task.cancel() is called.

Readme

Keywords

none

Package Sidebar

Install

npm i @praxis.gdn/promise-task

Weekly Downloads

3

Version

1.0.0

License

MIT

Unpacked Size

4.96 kB

Total Files

4

Last publish

Collaborators

  • modeswitch