让管道自我刷新角度

mus*_*dea 4 javascript typescript angular

我有来自后端的静态时间戳,我想每 1 秒刷新一次管道以获取现在的日期,这是我的管道

    import { Pipe, PipeTransform } from '@angular/core';
import moment from 'moment';
@Pipe({
  name: 'dateFormat'
})
export class DateFormatPipe implements PipeTransform {

  transform(date: string): string {

    return moment.utc(date, 'X').local().format('DD-MM-YYYY h:mm:ss a');
  }

}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它只是将时间戳转换为这种格式,我想保持日期更新,我该怎么做?

小智 6

您应该返回一个可观察对象并也使用 asyncPipe。

import { Pipe, PipeTransform } from '@angular/core';
import * as moment from 'moment';
import { interval, Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Pipe({
  name: 'dateFormat'
})
export class DateFormatPipe implements PipeTransform {

  transform(date: string): Observable<string> {
    return interval(1000).pipe(map(() => { return moment().format('DD-MM-YYYY h:mm:ss a') }));
  }

}
Run Code Online (Sandbox Code Playgroud)

你应该像这样使用它: {{ 'param' | dateFormat | async}}