我有一个函数className.doSomething()返回一个可观察对象。我想知道这个函数被调用或订阅的时间。
className.doSomething ():callAtSubscribe("打印当前时间"):利用():订阅()
需要适当的东西来代替callAtSubscribe。
您可以将该方法包装在Observable.Create
中。这将允许您跟踪何时进行订阅。如果将其包装在一个方法中,就可以跟踪该方法何时被调用。这将允许您查看方法何时被调用(但可能不订阅结果)。
/**
* Module dependencies.
*/
var Rx = require('rx');
Rx.Observable.prototype.log = function (logger, sourceName) {
var source = this;
logger.debug({source : sourceName, kind : 'Created'});
return Rx.Observable.create(function(observer) {
logger.debug({source : sourceName, kind : 'Subscribe'});
return source.subscribe(observer);
});
};
这是我使用的log方法的简化版本。它可以被大量修改,包括计时、值监听、错误、完井和终止。