RXJS操作员:
#javascript #网络开发人员 #rxjs #typescript

rxjs是一个JavaScript库,可实现异步和基于事件的程序的创建。主要类型是Observable,提供了一套功能和运算符,以使与数据通过的数据更容易。该系列将详细介绍这些操作员(以及一些独立功能),并提供其使用的示例。

在这篇文章中,我们将涵盖of函数。

它有什么作用?

严格来说,这不是操作员,但它本身就是有用的。我将利用它来简化示例。

of函数允许我们将正常值或一系列值转换为可观察的。当我们订阅此可观察到的时,它将散发出提供给它的所有值。一旦发出所有值,它将自动完成。

例子

of可以像我们其他可观察的一样使用:

import { of } from 'rxjs';

of('Test Value')
    .subscribe(x => {
        console.log(x);
    });

运行这个我们将看到

Test Value

of函数很简单。它具有一个价值,并使我们有一个可观察的。

如果我们需要可观察到的发射多个值,我们可以通过将多个值传递给of函数来做到这一点:

import { of } from 'rxjs';

of('Test Value', 'And a second', 'Third and final')
    .subscribe(x => {
        console.log(x);
    });
Test Value
And a second
Third and final

虽然很简单,但不要低估其效用。以下是一些示例用例:

单位测试 - 能够模拟外部依赖关系对于有效的单位测试至关重要。 of函数使从可观察的函数中指定返回值很容易。

缓存 - 如果我们有一个可观察到的电话,我们知道经常会改变,我们可能想缓存结果。在随后的通话中,我们可以返回缓存结果,而不是反复运行查询。 of允许我们返回可观察的可观察值,这意味着调用代码不需要任何内部处理的知识来处理结果。

错误处理 - 如果我们使用可观察到的HTTP调用(如Angular HTTP客户端)实现了错误。尽管应该始终处理这些问题,但我们可能不想将异常归还给发起人。在这种情况下,我们可以处理错误(使用catchError运算符)并使用of返回默认值。

这些只是我看到的一些区域。关键是,它比您预期的要多。

此示例的源代码可在github上找到:https://github.com/drownedintech/rxjs-operators