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

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

在这篇文章中,我们将覆盖map操作员。

它有什么作用?

map操作员的工作方式与数组函数相同的方式与同名函数相同。我们传递一个接受当前值,执行操作并返回新结果的函数。然后,在map运算符之后出现的任何操作员都将使用从函数返回的新值。

例子

import { interval, map } from 'rxjs';

interval(1000)
    .pipe(map(x => `Value mapped: ${x}`))
    .subscribe(x => {
        console.log(x);
    });

这里的interval提供了顺序的整数。我们传递给map运算符的功能创建了一个字符串,其中包括该值并返回。如果我们运行此操作,我们将看到:

Value mapped: 0
Value mapped: 1
Value mapped: 2
Value mapped: 3
Value mapped: 4
Value mapped: 5

这是一个简单的示例,显示了map运算符的基本用法。更复杂的实现可用于选择传递对象的特定值。或者我们可以应用计算并返回。关键是,我们在map操作员中可以做什么并不是一个限制。

有一个警告。不要尝试并利用其他可观察物作为功能的一部分。如果我们想利用其他可观察到的物品,则有专门的方法来处理这一点:

  • concatMap
  • exhaustMap
  • mergeMap
  • switchMap

这些将在以后的帖子中涵盖。目前,使用map时只需坚持基本操作。

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