Skip to content

Commit c613f60

Browse files
committed
Improve example
1 parent d7063a5 commit c613f60

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

JavaScript/4-scheduler.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ class Task extends EventEmitter {
6868
run() {
6969
if (!this.active || this.running) return false;
7070
this.running = true;
71-
this.emit('begin');
71+
this.emit('begin', this);
7272
this.exec((err, res) => {
73-
if (err) this.emit('error', err);
74-
this.emit('end', res);
73+
if (err) this.emit('error', err, this);
74+
this.emit('end', res, this);
7575
this.count++;
7676
this.running = false;
7777
});
@@ -91,12 +91,12 @@ class Scheduler extends EventEmitter {
9191
this.tasks.set(name, task);
9292
task.on('error', err => {
9393
this.logger.error(task.name + '\t' + err.message);
94-
this.emit('error', err);
94+
this.emit('error', err, task);
9595
});
9696
task.on('begin', () => {
9797
this.logger.info(task.name + '\tbegin');
9898
});
99-
task.on('end', res => {
99+
task.on('end', (res = '') => {
100100
this.logger.warn(task.name + '\tend\t' + res);
101101
});
102102
task.start();
@@ -120,18 +120,18 @@ class Scheduler extends EventEmitter {
120120

121121
const scheduler = new Scheduler();
122122

123-
scheduler.on('error', err => {
124-
console.log(err.stack);
123+
scheduler.on('error', (err, task) => {
124+
console.log(`Error in ${task.name}: ${err.stack}`);
125125
//process.exit(1);
126126
});
127127

128-
scheduler.task('name1', '2019-03-12T14:30Z', done => {
128+
scheduler.task('name1', '2019-03-12T14:37Z', done => {
129129
setTimeout(() => {
130130
done(null, 'task successed');
131131
}, 1000);
132132
});
133133

134-
scheduler.task('name2', '2019-03-12T14:31Z', done => {
134+
scheduler.task('name2', '2019-03-12T14:37Z', done => {
135135
setTimeout(() => {
136136
done(new Error('task failed'));
137137
}, 1100);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy