在 Node.js 个异步管道中更正对象方法调用
Correct object method calls in Node.js async pipelines
我想使用一些 Node.js async
管道操作(例如 parallel
和 waterfall
)来调用对象内部的实例方法。
我使用以下格式在管道函数中保留正确的 this
引用,因为通常情况下,管道函数内部 this
引用管道对象本身。
var jobThis = this;
async.waterfall(
[
function(cb) { jobThis.getParseInstalls(cb); },
function(prev, cb) { jobThis.getParseIAPs(prev, cb); },
],
callback
);
我希望管道的各个阶段能够访问(但不能修改)属于包装对象的设置对象。
我觉得这种作风不好。有没有更清洁的方法来实现这个目标?我只是不应该使用方法和 async
吗?
最后,我意识到简单地使用 function.bind
是最干净的方法(而且,self
比其他任何方法都更清晰):
var self = this;
async.waterfall([
self.getParseInstalls.bind(self),
self.doSomethingElse.bind(self),
],
callback
);
我想使用一些 Node.js async
管道操作(例如 parallel
和 waterfall
)来调用对象内部的实例方法。
我使用以下格式在管道函数中保留正确的 this
引用,因为通常情况下,管道函数内部 this
引用管道对象本身。
var jobThis = this;
async.waterfall(
[
function(cb) { jobThis.getParseInstalls(cb); },
function(prev, cb) { jobThis.getParseIAPs(prev, cb); },
],
callback
);
我希望管道的各个阶段能够访问(但不能修改)属于包装对象的设置对象。
我觉得这种作风不好。有没有更清洁的方法来实现这个目标?我只是不应该使用方法和 async
吗?
最后,我意识到简单地使用 function.bind
是最干净的方法(而且,self
比其他任何方法都更清晰):
var self = this;
async.waterfall([
self.getParseInstalls.bind(self),
self.doSomethingElse.bind(self),
],
callback
);