Я пытаюсь установить Pipe в angular 6, который преобразует текст в другой с помощью сервиса (метод, который возвращает наблюдаемый)
Я попробовал следующий код, но мне нужно вернуть строку вместо Promise
Труба:
import { Pipe, PipeTransform } from '@angular/core';
import { TimeZoneService, TimeZone } from '../services/Global/timezone.service';
//import { resolve } from 'dns';
import { reject } from 'q';
import { Observable } from 'rxjs';
@Pipe({
name: 'utcToText'
})
export class UtcToTextPipe implements PipeTransform {
private timezoneLst: TimeZone[] = [];
constructor(private _timezoneSvc : TimeZoneService) {}
async transform(timezone: any, args?: any){
this.timezoneLst = await this._timezoneSvc.getTimeZonesLst().toPromise();
return this.timezoneLst.find(x => x.utc.indexOf(timezone) > -1).text;
}
}
HTML:
<span>{{subscription.time_zone | utcToText}</span>
Есть ли способ сделать асинхронный метод Promise / Ovservabe синхронной функцией, которая возвращает синхронную функцию, такую как String?
Большое спасибо за помощников.