网站搜索
使用场景: 每3分钟调用一次端点,以更新应用程序中某个服务的状态。
我当前的代码:
interval(180000) .subscribe(() => this.doRequest .pipe(catchError(() => { this.applicationFlag = false; return EMPTY;
阅读更多 →
我想在我的订阅之后以额外的延迟运行我的部分逻辑(使用 RxJS)。我知道 finalize 操作符,我可以在 pipe 中使用它,但那会导致在我的 observable 完成后立即执行。
有没有办法在运行 finalize 之前创建延迟?
附加信息:
我正在订阅一个服务器调用,这意味着我只期望一个值。
不,无法在 finalize 之前创建延迟。
阅读更多 →
Angular Material 文档应用程序像这样从懒加载路由模块中获取路由参数:
https://github.com/angular/material.angular.io/blob/master/src/app/pages/component-category-list/component-category-list.ts
// Combine params from all of the path into a single object. this.params = combineLatest( 阅读更多 →
我正在尝试处理 Observable 上的一些自定义错误。
如果我抛出一个新的自定义错误,我想退出订阅。但无论我怎么尝试,它仍然继续处理,且没有抛出任何错误。
我正试图退出 subscribe 函数并跳到错误处理程序,但我下面的代码没有按预期工作。
const obs = new Observable((observer) => { observer.next(); }).pipe( map(() => { return "Some Data"; 阅读更多 →
长话短说,我是初级 .Net 开发人员,我接到任务要在我们的 Angular 应用中做一些更改,我完全不知道它是怎么工作的,并且在尝试更改时遇到了困难。我在一个问题上卡住了。
用户是根据表单创建的,提交后会有一个调用:
submit() { if (this.accountForm.invalid) { return; } const { email, accountExpirationDate, firstName, lastName, permissionLevel, 阅读更多 →我正在尝试创建一个 RXJS Observable,本质上它将像缓存一样工作。通常我可以直接使用 shareReplay 来实现,但是我尝试缓存的数据是基于用户的,所以需要重置。以下代码 几乎 实现了我想要的效果:
const myObservable = userProfile.pipe( switchMap(profile => loadData(profile)), shareReplay(1) );现在数据已经加载到第一个订阅中,并且在新的用户资料到来之前不会再次加载。然而,这并不完全有效,因为在新数据加载时进行订阅的订阅者仍然会收到缓存的旧数据。这会导致用户界面显示来自上一个用户的旧数据。为了解决这个问题,我做了以下操作:
const myObservable = userProfile.pipe( switchMap(profile => loadData(profile).pipe(startWith(null 阅读更多 →我正在将一个 Angular 12 项目迁移到 Angular 13。Angular 13 配备了 RxJS 7。RxJS 7 已弃用 $obs.toPromise(),推荐使用 lastValueFrom($obs)。
遗憾的是,我有大量的 $obs.toPromise(),我正在寻找一种实用且省时的方式来进行迁移。
有迁移脚本吗?
基本上看起来:
import * as fs from 'fs'; import * as glob from 'glob'; const files = glob.sync(`/**/*.ts`); files.forEach(file => { let fileContent = fs.readFileSync(file, 'utf-8'); if( fileContent.includes('toPromise()') ){ fileContent = f 阅读更多 →
Angular 12,我正在尝试运行一组单元测试,让它们能够捕捉 HTTP 响应中的错误,但当测试运行时,错误是作为响应体传递的,而不是作为错误传递的。
Spec.ts 文件
it('Test post method failure', () => { const expected: HttpErrorResponse = new HttpErrorResponse({ error: 'Bad Request', status: 400, statusText: 'B 阅读更多 →以下是我的自定义表格组件的排序。它对字符串和数字数据类型运行良好,除了多个小数点的数字。DTableSort.ts
@Component({ selector: "myDefaultGSorter", template: ` <a style="cursor: pointer" (click)="sort()" class="text-nowrap" [ngClass]="isSortedByMeAsc ? 'sort_by_asc' : isSortedByMeDesc ? 'sort_by_desc' : 'no_sorting'"> <ng-content></ng-content> </a>` })DTable.ts
阅读更多 →
我有以下代码来在我的 Angular 8 项目中实现两件事。
问题:当我离开页面时计时器似乎仍在运行,因为我仍然可以在网络中看到 API 调用。我不确定这是否与 takeUntil 泄漏有关,请帮忙!
import {Observable, Subject, timer} from 'rxjs'; import {finalize, takeUntil, takeWhile 阅读更多 →