2

dojo/on 有 once() 非常有用。如何在dojo/aspect的before()/after()中实现这样的行为?我不敢相信有人在 dojo/on 上实现了 once(),但在 dojo/aspect 上却没有。我看不出有什么不同。

4

1 回答 1

3

保存之前/之后的返回并调用它有那么难remove吗?这是一个简单的实现:

aspect.onceAfter: function(target, methodName, advice, receiveArguments){
  var handle = aspect.after(target, methodName, function(){
    handle.remove();
    advice.apply(null, arguments);
  }, receiveArguments);
}
于 2013-06-04T07:27:08.873 回答