Angular 为什么异步函数返回';分区对象';

Angular 为什么异步函数返回';分区对象';,angular,typescript,async-await,zone,Angular,Typescript,Async Await,Zone,这个问题有点与我有关。在这里,我们有以下代码: private async createFloor(name) { let newFloorData = { floorName: name, percent: 0, requestSubscription: null, finish: false, deleted: false, }; ... return newFloorDa

这个问题有点与我有关。在这里,我们有以下代码:

private async createFloor(name) 
{
    let newFloorData = { 
        floorName: name,
        percent: 0,
        requestSubscription: null,
        finish: false,
        deleted: false,
    };

    ...

    return newFloorData;
}

public async addFloor(event) 
{
     let newFloorData = this.createFloor('test name');
     debugger;
     ...
}
在调试器chrome debugger中,当我查看
newFloorData
时,我会得到以下信息:

脑区

__区域符号状态:真

__区域\符号\值:{percent:0,requestSubscription:null,finish:false,deleted:false}

原型:对象

但是,如果我在
addFloor
功能中添加
wait

public async addFloor(event) 
{
     let newFloorData = await this.createFloor('test name');
     debugger;
     ...
}
在调试器中,我只得到
createFloor
返回的newFloorData对象(这很直观)


问题:为什么?这种行为背后的机制是什么?

Angular使用zone.js修补几乎所有的异步API。 它这样做是为了在发生异步操作时得到通知,然后触发更改检测运行

另见