diff --git a/types/kue/index.d.ts b/types/kue/index.d.ts index 45fd6cfa83..035d83ce15 100644 --- a/types/kue/index.d.ts +++ b/types/kue/index.d.ts @@ -30,7 +30,7 @@ export declare class Queue extends events.EventEmitter { checkActiveJobTtl(ttlOptions: Object): void; watchStuckJobs(ms: number): void; setting(name: string, fn: Function): Queue; - process(type: string, n?: number | Function, fn?: Function): void; + process(type: string, n?: number | DoneCallback, fn?: DoneCallback): void; shutdown(timeout: number, type: string, fn: Function): Queue; types(fn: Function): Queue; state(string: string, fn: Function): Queue; @@ -57,10 +57,13 @@ interface Priorities { critical: number; } +export type DoneCallback = (err?: any, result?: any) => void; + export declare class Job extends events.EventEmitter { public id: number; public type: string; public data: any; + public result: any; public client: redisClientFactory.RedisClient; private _max_attempts; @@ -80,6 +83,7 @@ export declare class Job extends events.EventEmitter { log(str: string): Job; set(key: string, val: string, fn?: Function): Job; get(key: string, fn?: Function): Job; + get(key: string, jobType: string, fn?: Function): Job; progress(complete: number, total: number, data?: any): Job; delay(ms: number | Date): Job; removeOnComplete(param: any): Job; diff --git a/types/kue/kue-tests.ts b/types/kue/kue-tests.ts index bcd2c26a60..e20ec3e331 100644 --- a/types/kue/kue-tests.ts +++ b/types/kue/kue-tests.ts @@ -46,16 +46,16 @@ create(); // process video conversion jobs, 1 at a time. -var processCb = function(job: kue.Job, done: Function) { +var processCb = function(job: kue.Job, done: kue.DoneCallback) { var frames: number = job.data.frames; function next(i: number) { // pretend we are doing some work - convertFrame(i, function(err: Error) { + convertFrame(i, function(err: Error, result: any) { if (err) return done(err); // report progress, i/frames complete job.progress(i, frames); - if (i >= frames) done(); + if (i >= frames) done(null, result); else next(i + Math.random() * 10); } ); } @@ -67,7 +67,7 @@ jobs.process('video conversion', 1, processCb); jobs.process('video conversion', processCb); function convertFrame(i: number, fn: Function) { - setTimeout(fn, Math.random() * 50); + setTimeout(() => fn(null, Math.random()), Math.random() * 50); } // one minute