为什么在事件侦听器中间等待的异步函数会丢弃事件流的状态和阶段?有可能保留吗?
例如,
button.addEventListener("click", async (event) => {
eventSnapshots.push({
title: "Sync",
object: extract(event)
});
syncFn(event);
await asyncFn();
syncFn(event);
writeToElement(eventSnapshots, view);
});
事件流的快照将是这样的:
Sync:
{
"phase": 2,
"currentTarget": {},
"path": 5,
...
}
SyncFn:
{
"phase": 2,
"currentTarget": {},
"path": 5,
...
}
//await AsyncFn
SyncFn:
{
"phase": 0,
"currentTarget": null,
"path": 0,
...
}
( https://codesandbox.io/s/pensive-hill-nzxvnl?file=/src/index.js:514-745 )