Задержка RxJS на наблюдаемой строке - PullRequest
0 голосов
/ 22 октября 2018

Как я могу добавить задержку на Observalbe?

Вот мой код (этот код на конвейере):

@Pipe({
    name: 'toTitle',
    pure: false
})
export class ToTitlePipe implements PipeTransform {

    constructor(private translate: TranslateService) { }

    transform(model: BaseModel | ModelType): Observable<string> {
        return this.getModelTitle(model).pipe(map(title => {
            if (model instanceof BaseModel) {
                const classSettings = model.modelType.getClassSettings();
                if (classSettings && classSettings.toTitle) {
                    return `${title} ${model.modelType.getClassSettings().toTitle(model)}`;
                }
                return `${title} ${model.primaryKey}`
            }
            return title;
        }), delay(0));
    }

    getModelTitle(model: BaseModel | ModelType): Observable<string> {
        return of('test');
    }
}

Хорошо работает, когда я удаляю задержку,заголовок верен.Но когда я добавляю это delay(0), метод преобразования возвращает ноль.

Я должен использовать задержку из-за ExpressionChangedAfterItHasBeenCheckedError.

Почему канал delay возвращает ноль?

РЕДАКТИРОВАТЬ:

Вот как я потребляю трубу:

{{model | toTitle | async}}

Когда я пытаюсь это: (model | toTitle | async) === null, он возвращает true по шаблону.

...