我在构造函数中使用async
来顺序调用内部方法。但是,由于本地化this
的问题,我必须将这些函数包装在一个匿名函数中。如果我想传递额外的参数,我必须采用类似的方法。例如:
class AsyncFriendly {
constructor() {
async.waterfall( [
( ...args ) => { this.methodA( ...args ); },
( ...args ) => { this.methodB( ...args ); },
],
( ...args ) => { this.allDone( "pass in", ...args ); }
)
}
methodA( callback ) {
callback( null );
}
methodB( callback ) {
callback( null );
}
allDone( letMeIn ) {
console.log( 'done ' + letMeIn );
}
}
这似乎是一种笨拙的反模式,我想在这里找到合适的模式。