RXJS 7-入门
#javascript #网络开发人员 #angular #rxjs

这是我的详细说明,来自Jurek Wozniak创建的奇妙课程,称为RxJS 7 and Observables: Introduction

要了解该概念,请考虑自己购买课程,这些笔记只是子公司

注意:这是一系列文章的第一篇文章

入门

快速开始

可观察物就像数据或事件生成器一样存储在内部的逻辑。

他们生成的数据可以具有各种来源,例如值,DOM事件,计时器等。

您想要的任何东西都可以变成可观察的

让我们说我们有一个可观察的,现在我们需要以某种方式开始执行数据。

编码示例

可观察到的名称末尾的$符号作为命名实践,这样我们就可以轻松地确定哪个变量实际上可观察到

首先让我们看到我们将使用的功能。

外部.ts

import { Observable, of } from "rxjs";

export const name$ = of('Alice', 'Ben', 'Charlie');

export function storeDataOnServer(data: string): Observable<string> {
  return new Observable(subscriber => {
    setTimeout(() => {
      subscriber.next(`Saved successfully: ${data}`);
      subscriber.complete();
    }, 5000);
  });
}

export function storeDataOnServerError(data: string): Observable<string> {
  return new Observable(subscriber => {
    setTimeout(() => {
      subscriber.error(new Error('Failure!'));
    }, 5000);
  });
}

我们可以认为可观察到的函数,当我们调用它时,它会发出一些值。

index.ts

import { name$, storeDataOnServer, storeDataOnServerError } from './external';

name$.subscribe();

这里可能会发出一些数据,但是由于我们有一个处理程序,所以我们无法抓住它

import { name$, storeDataOnServer, storeDataOnServerError } from './external';

name$.subscribe((value) => console.log(value));

// Mike
// Brandon
// Alice

我们可以写一个函数,该函数模拟数据从远程服务器

storeDataOnServer('Some value').subscribe((value) => console.log(value));

我们也有一个像我们投掷错误
的版本

storeDataOnServerError('Some value').subscribe((value) => console.log(value));

这将使我们的JavaScript失败,因为我们没有处理错误。

对于可观察到的错误处理,我们有2个版本

首先是不推荐的版本(仍然像这样编写的许多项目)

storeDataOnServerError('Some value').subscribe(
   (value) => console.log(value),
   (err) => console.log('Error when saving:', err.message)
 );

和现代版本可观察的对象

storeDataOnServerError('Some value').subscribe({
  next: (value) => console.log(value),
  error: (err) => console.log('Error when saving:', err.message),
});

整个代码:

import { name$, storeDataOnServer, storeDataOnServerError } from './external';

// name$.subscribe((value) => console.log(value));

// storeDataOnServer('Some value').subscribe((value) => console.log(value));
// storeDataOnServerError('Some value').subscribe((value) => console.log(value));

// storeDataOnServerError('Some value').subscribe(
//   (value) => console.log(value),
//   (err) => console.log('Error when saving:', err.message)
// );

storeDataOnServerError('Some value').subscribe({
  next: (value) => console.log(value),
  error: (err) => console.log('Error when saving:', err.message),
});

让我们保持联系

嘿,如果您读了这么远,请非常感谢。
我希望您保持联系以获取更多甜蜜的内容。
请在Dev.To和其他频道中订阅(ð°特别twitter)

twitterðhttps://twitter.com/barisbll_dev
LinkedIn - https://www.linkedin.com/in/barisbll-dev/
githubð»ð»https://github.com/barisbll
中ð°https://medium.com/@barisbll