这个问题与this one有点关系。这里我们在ANGULAR中有以下代码:
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;
...
}
当我查看newFloorData
时,在调试器chrome调试器中,我得到以下信息:
ZoneAwarePromise
__ zone_symbol__state:true
__ zone_symbol__value:{percent:0,requestSubscription:null,finish:false,deleted:false}
proto :对象
但是,如果我在await
函数中添加addFloor
:
public async addFloor(event)
{
let newFloorData = await this.createFloor('test name');
debugger;
...
}
在调试器中我只获得createFloor
返回的newFloorData对象(直观)。
问题:为什么?这种行为背后有什么机制?
答案 0 :(得分:2)
Angular使用zone.js来修补几乎所有异步API。 这样做是为了在异步操作发生时得到通知,然后触发更改检测运行。
另见