场景A:执行同步函数A。用户在 functionA 执行过程中关闭窗口。窗口关闭(或刷新)后代码的执行是否会立即停止?想象一下 functionA 对数据库进行了许多修改。函数前半部分的代码是否有可能改变数据库?如果是这样,这可能会导致我的项目出现问题。有没有办法保证整个功能完成呢?ScenarioB:setTimeout有一段时间后执行的回调。窗口在回调被放入调用堆栈之前关闭(恰好)。回调会执行还是会被丢弃?
1 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
窗口关闭(或刷新)后代码的执行是否会立即停止?
是的。
想象一下 functionA 对数据库进行了许多修改。函数前半部分的代码是否有可能改变数据库?
是的。
如果是这样,这可能会导致我的项目出现问题。有没有办法保证整个功能完成呢?
不。
一般来说,对于数据库,您可以使用事务,因此如果未完成完整的更改集,它将回滚。
场景 B:setTimeout 有一个在一段时间后执行的回调。窗口在回调被放入调用堆栈之前关闭(恰好)。回调会执行还是会被丢弃?
它被丢弃。
添加回答
举报
0/150
提交
取消