From 58ac5745a1ae4814ce572f9e90652a2293a33e7c Mon Sep 17 00:00:00 2001 From: LosslessBot Date: Wed, 4 May 2016 04:17:59 +0200 Subject: [PATCH] Update Readme and clarify use of Promises. --- README.md | 8 +++++++- package.json | 3 ++- ts/taskbuffer.classes.task.ts | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d9495a1..04a9740 100644 --- a/README.md +++ b/README.md @@ -16,4 +16,10 @@ npm install taskbuffer --save * A Task in its most simple form is a function that is executed when the task runs. * It can have a preTaska and an afterTask (those are run before or after the main function whenever the task is called) * A Task can be buffered. That means it can be called multiple times in a very short time. However execution happens in line: meaning execution of the task's main function is on halt until the previous task call has finished. -* Multiple Tasks can be combined in a bigger task using a Taskchain. Taskchain extends Task. \ No newline at end of file +* Task.trigger() and Task.triggerBuffered() always return a Promise; +* Task.triggered() is an ObservableStram that emits events every time a task is promised. +* Task is compatible to gulp streams. + +#### Taskchain +* Multiple Tasks can be combined in a bigger task using a Taskchain. Taskchain extends Task. + diff --git a/package.json b/package.json index faeb550..967d74c 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "beautylog": "^2.1.1", "npmts": "^3.1.2", "projectinfo": "0.0.2", - "q": "^1.4.1" + "q": "^1.4.1", + "rx": "^4.1.0" }, "devDependencies": { "should": "^8.2.2" diff --git a/ts/taskbuffer.classes.task.ts b/ts/taskbuffer.classes.task.ts index cfbcc1b..f633fbd 100644 --- a/ts/taskbuffer.classes.task.ts +++ b/ts/taskbuffer.classes.task.ts @@ -27,6 +27,7 @@ export class Task { } } trigger(){ + let done = plugins.Q.defer(); helpers.runTask(this.preTask) .then(function(){ @@ -34,6 +35,10 @@ export class Task { .then(function(){ }) + .then(function(){ + done.resolve(); + }); + return done.promise; }; triggerBuffered(){ var done = plugins.Q.defer();