Angular 等待订阅完成

Angular 等待订阅完成,angular,typescript,observable,httpclient,subscribe,Angular,Typescript,Observable,Httpclient,Subscribe,我正在尝试用Angular实现一个测试应用程序。问题场景是,我需要执行Get并根据从Get请求获得的数据返回一个值。见下文: 公共getNextId(entityName:string):编号{ console.info('正在检索'+entityName'的下一个ID); 设seqId:seqId; 常量url=`${this.apiURL}/${entityName}`; console.info('SeqID URL:'+URL); this.http.get(url) .订阅((数据:S

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

公共getNextId(entityName:string):编号{ console.info('正在检索'+entityName'的下一个ID); 设seqId:seqId; 常量url=`${this.apiURL}/${entityName}`; console.info('SeqID URL:'+URL); this.http.get(url) .订阅((数据:SeqId)=>SeqId=data);->1 /*使用seqId*/->2执行某些操作 返回seqId.nextEntityId; } 问题是(2)在(1)之前执行。当达到(2)时,seqId变量尚未设置

我怎样才能在同一个方法中获取、处理检索到的数据并返回一些东西


提前感谢

您需要从这里返回一个可观察的,而不是订阅

  GetData() {return  this.http.get<SeqId>(url)
    .pipe(map(data: SeqId) => seqId = data); 
}
GetData(){返回this.http.get(url)
.管道(地图(数据:SeqId)=>SeqId=数据);
}

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

您必须在
subscribe
回调中执行的可能重复操作。