我已阅读并尝试实施operator-creation 还见过complications with this
尽管这对于运算符重载很有用,但我想使用lift函数在正在处理的值中存储时间细节,而不使用timeout()。这将非常有用,因为它有助于在不更改源代码的情况下进行并发性测试。即,如下所示的重载提升可能有助于为并发测试制定通用时间日志。
Rx.Observable.prototype.lift=function(operator){
const observable = new Rx.Observable();
observable.source = this;
observable.operator = operator;
/****Need help here: Is this possible? Obtain var cvalue= current value
being processed from source or operator***/
var newvalue=null;
if(! cvalue.timeLog) {
newvalue=Object.assign({},{value:cvalue},{timeLog:[]});
}else newvalue=cvalue;
newvalue.timeLog.push({operator: operator.constructor.name, time: Date.now() });
return observable;
}
目前我可以使用console.log source,observable,operator,但是这些给出了_isScalar:false和Observable / Operator的对象定义。
有没有办法直接在升力功能中操纵值?否则我可以在每个操作符之后执行timestamp()。timestampflattenfunction(),但这真的很痛苦。如上所述超载电梯可以让生活更轻松。可以吗?