假设我有一个类似于Array的对象,允许链接这样的方法:
var ds = new DataSet(items);
var subset = ds.filter(condition1).filter(condition2);
是否有办法在链接中的最后一个方法处理后执行代码 - 无需手动添加单独的.finalize()
(或end
/ {{ 1}} / ...)方法调用?
我相信我在某个地方见过这个,但我不记得细节了。也许期货/承诺/延期在这里会有用 - 但我真的不知道如何,因为我总是最终需要“展望未来”以确定方法调用是否是链中的最后一个。 / p>
答案 0 :(得分:1)
如果您控制filter
方法,可能会添加一个finalize参数吗?
.filter(condition,[some finalizer function]);
filter
中的:
if (finalizer){
finalizer();
}
[根据评论进行修改]
另一种方法可能是允许终结条件,因此在.filter(condition)
中,condition
的内容定义了最终确定的需要。
类似的东西(我不知道你的病情类型,只是搞砸了):
if (condition.match('f=true')) {
finalizer();
}