Angular 等待承诺导致以下等待在NGZ区域之外

Angular 等待承诺导致以下等待在NGZ区域之外,angular,Angular,角度6,cli 6 我最近遇到了一些问题,订阅中没有发生更改检测-如果我执行detectChanges(),那么一切都很顺利 这让我发现http调用正在区域外运行,这令人不安 经过一番搜寻,我把范围缩小到这个代码 我有一个基本的http服务,它使用httpClient发出请求,并为每个“api”进行扩展 现在在我的组件中 const[yy,xx]=等待承诺([ 此._labelApi.find().toPromise(), 这是._workspaceApi.find().toPromise()

角度6,cli 6

我最近遇到了一些问题,订阅中没有发生更改检测-如果我执行
detectChanges()
,那么一切都很顺利

这让我发现http调用正在区域外运行,这令人不安

经过一番搜寻,我把范围缩小到这个代码

我有一个基本的http服务,它使用httpClient发出请求,并为每个“api”进行扩展

现在在我的组件中

const[yy,xx]=等待承诺([ 此._labelApi.find().toPromise(), 这是._workspaceApi.find().toPromise() ]);

const z=等待此操作。_labelApi.find().toPromise()

其中
\u labelApi
\u workspaceApi
是扩展基本服务的类

忽略代码,真正有趣的是控制台消息

xxxx /api/Labels true
xxxx /api/Workspaces true
xxxx /api/Labels false
因此,当执行对
/api/Labels
的第二次相同调用时,这次它不在区域中

如果我将代码更改为

    const a = await this._labelApi.find().toPromise();
    const z = await this._labelApi.find().toPromise();
    const b = await this._workspaceApi.find().toPromise();
然后控制台结果是

xxxx /api/Labels true
xxxx /api/Labels false
xxxx /api/Workspaces false
因此,在我看来,第一个http调用似乎会将任何其他http抛出该区域。这是非常非常奇怪的

有人知道这里会发生什么吗

谢谢

更新#1 我很确定这与
toPromise()
有关。如果我把代码改为

    this._labelApi.find().subscribe();
    this._labelApi.find().subscribe();
    this._workspaceApi.find().subscribe();
然后控制台显示

    xxxx /api/Labels true
    xxxx /api/Labels true
    xxxx /api/Workspaces true
但是,当然,这使得在启动另一个http请求之前等待http请求变得更加棘手

更新#2 如果我将
tsconfig
中的目标从
esnext
更改为
es5
,则代码会按照我的预期工作

所以,如果我冒昧猜测一下,typescript->exnext transpiler有点不对劲

    xxxx /api/Labels true
    xxxx /api/Labels true
    xxxx /api/Workspaces true