gpt4 book ai didi

javascript - Rx js 理解 lift 方法

转载 作者:可可西里 更新时间:2023-11-01 02:34:03 25 4
gpt4 key购买 nike

我想创建一个新的运算符,我在 documentation 中找到其中一种方法是做这样的事情:

class MyObservable extends Observable {
lift(operator) {
const observable = new MyObservable()
observable.source = this;
observable.operator = operator;
return observable;
}

// put it here .. or ..
customOperator() {
/* do things and return an Observable */
}
}

// ... put it here...
MyObservable.prototype.mySimpleOperator = mySimpleOperator;

我不明白什么是 lift 方法以及这里发生了什么,有人可以帮忙吗?

最佳答案

lift 一直在 RxJS 5 内部使用。lift 的原理是你准备一个新的 Observable,在订阅时将按照运算符(operator)定义的方式转发事件。 Paul Taylor ( https://youtu.be/QhjALubBQPg?t=19m ) 有一个很好的视频。电梯是一个非常基本的构建 block 。

除了创建一个新类——扩展 Observable——你也可以只创建 Operator 本身。然后,运算符(operator)的用户可以通过以下方式调用它:

Observable.of(1, 2, 3)
.lift(new MyCustomOperator)
.subscribe()

这意味着没有人必须知道 Observable API 中还有另一个运算符可用,而是看到它是在其他地方定义的东西。

理想情况下你可以写

someObservable::myCustomOperator();

但不幸的是,绑定(bind)运算符可能已经存在很长时间/永远不会发生,所以 .lift(operator) 似乎是最明确/最干净的方式。

关于javascript - Rx js 理解 lift 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43774407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com