如何在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)
时,transform方法将返回null。
由于ExpressionChangedAfterItHasBeenCheckedError
,我不得不使用延迟。
为什么delay
管道返回空值?
编辑:
这是我消耗管道的方式:
{{model | toTitle | async}}
当我尝试使用(model | toTitle | async) === null
时,它将在模板上返回true
。