如何在 async.queue 中使用 class 变量
How to use class variables in a async.queue
我正在尝试在 class 中使用 async.queue,因此我能够使用 class 变量。但是,如果我试图这样做,则变量未定义。有什么方法可以按预期使用吗?
class TestClass {
constructor() {
this.a = 'Hello World'
this.q = async.queue(this.hello, 1)
}
hello(item, callback) {
console.log(item)
console.log(this.a) /* Not defined */
callback()
}
start() {
my_jobs = ['Foo', 'Bar',]
my_jobs.forEach(element => {
this.q.push(element)
})
}
}
my_class = new TestClass()
my_class.start()
var async = require('async');
class TestClass {
constructor() {
this.a = 'Hello World';
this.q = async.queue(this.hello.bind(this), 1); /* use .bind to keep context*/
}
hello(item, callback) {
console.log(item);
console.log(this.a); /* Defined: Hello World */
callback();
}
start() {
var my_jobs = ['Foo', 'Bar'];
my_jobs.forEach(element => {
this.q.push(element);
});
}
}
my_class = new TestClass();
my_class.start();
我正在尝试在 class 中使用 async.queue,因此我能够使用 class 变量。但是,如果我试图这样做,则变量未定义。有什么方法可以按预期使用吗?
class TestClass {
constructor() {
this.a = 'Hello World'
this.q = async.queue(this.hello, 1)
}
hello(item, callback) {
console.log(item)
console.log(this.a) /* Not defined */
callback()
}
start() {
my_jobs = ['Foo', 'Bar',]
my_jobs.forEach(element => {
this.q.push(element)
})
}
}
my_class = new TestClass()
my_class.start()
var async = require('async');
class TestClass {
constructor() {
this.a = 'Hello World';
this.q = async.queue(this.hello.bind(this), 1); /* use .bind to keep context*/
}
hello(item, callback) {
console.log(item);
console.log(this.a); /* Defined: Hello World */
callback();
}
start() {
var my_jobs = ['Foo', 'Bar'];
my_jobs.forEach(element => {
this.q.push(element);
});
}
}
my_class = new TestClass();
my_class.start();