如何在 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();