我有一个函数className.doSomething(),它返回一个observable。我想知道调用或订阅这个函数的时间。
className.doSomething() :callAtSubscribe(“打印当前时间”) :点按() :订阅()
需要适当的代替callAtSubscribe。
答案 0 :(得分:0)
您可以将方法包装在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 方法的一个非常简化的版本。它可以进行大量修改,以包括时序,值的窃听,错误,完成和终止。