RxJS 5:获取Lift函数的基础值

时间:2016-06-19 18:05:32

标签: rxjs rxjs5 reactive-extensions-js

我已阅读并尝试实施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(),但这真的很痛苦。如上所述超载电梯可以让生活更轻松。可以吗?

0 个答案:

没有答案