Возврат наблюдаемого из "локали" трубы и цепи с асинхронной трубой
@Pipe({ name: 'locale' })
export class Locale implements PipeTransform {
returnresponse: string;
constructor(private UserService: UserService) { }
transform(value: any) {
return this.UserService.lookupapi_code(value)
}
}
HTML
{{model.template[i].locale | locale | async }}
Редактировать
Объяснение того, почему это не работает для вас:
Ваше дело терпит неудачу, потому что:
1. Вы ничего не возвращаете
2. Даже если вы вернетесь, это бесполезно, читайте дальше.
someMethod() { <-- your transform
someAsynBlock(() => { <-- your subscribe
return "result" <-- where will this return if you don't return the block itself? The block is asynchronous.
})
// now don't mistakeen the above comment by returning the "someAsynBlock"
// because that will return a subscription Object which you can't use to retrieve the value
}
Когда вы используете async
pipe, вы подписываетесь на Observable в самом шаблоне.
https://angular.io/api/common/AsyncPipe#description
Также обратите внимание на побочные эффекты от использования асинхронного канала, но если вам придется использовать свою логику через locale
канал, то я не вижу способа, как вы могли бы сделать это без использования async
канала.