繁体   English   中英

Angular等待订阅完成

[英]Angular wait for subscribe to finish

我正在尝试使用Angular实现测试应用程序。 问题场景是我需要执行Get并基于从该Get请求获得的数据返回一个值。 见下文:

public getNextId(entityName: string): number {
    console.info('Retrieving next ID for  ' + entityName);

    let seqId: SeqId;

    const url = `${this.apiURL}/${entityName}`;

    console.info('SeqID URL: ' + url);

    this.http.get<SeqId>(url)
        .subscribe((data: SeqId) => seqId = data); -> 1

    /*Do something with seqId */ -> 2

    return seqId.nextEntityId;
}

问题是(2)在(1)之前执行。 达到(2)时,尚未设置seqId变量。

如何使用同一方法执行Get,处理检索到的数据并返回某些内容?

提前致谢

您需要从此处返回一个观察值,而不是订阅

  GetData() {return  this.http.get<SeqId>(url)
    .pipe(map(data: SeqId) => seqId = data); 
}

并在控制器中订阅此方法并执行所需的操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM