我遇到了这个问题而我没有看到如何对待async
方法,因为ngOnChanges
不支持async
。
你们做了什么来实现这一目标?
将async
应用于ngOnChanges
时,它无效。返回值为Promise
。
@Component({
moduleId: module.id,
selector: 'search',
templateUrl: 'search.template.html'
})
export class Search implments OnChanges {
async queryArray(data: string): Promise<T> {
//sample scripts.
return ....;
}
ngOnChanges(changes: SimpleChanges) {
let query: string = "red";
let result: string[] = [];
await this.queryArray(query).then(resp => result = resp);
}
}
答案 0 :(得分:1)
async
await
以等待Promise
then
,因为您可以在添加await
代码:
async ngOnChanges(changes: SimpleChanges) {
let query: string = "red";
let result: string[] = [];
result = await this.queryArray(query);
}
另请注意,queryArray
不需要标记为async
,除非您还希望等待该方法中的结果以进行进一步处理。如果它所做的只是创建并返回一个Promise,那么就没有必要了。