我在工作中有一个问题:我有一部分依赖于服务器的安装。我想这样做:当用户删除服务器时,它会遍历安装集合并删除所有相关安装。为此,我使用 jQuery 'when' 函数,据说它等待来自服务器的响应,然后继续执行 'then' 函数。当只有一个依赖安装时,它可以完美运行。但是,当有更多安装时会出现问题,因为它会在收到 JSON 响应后立即移动到“then”函数。
问题是:如何让“何时”功能等待所有服务器响应?例如。我通过 $.postJSON 发出三个删除请求,并希望在收到所有三个响应后继续。如果“何时”不可能,我应该用什么来实现它?如果有帮助,我会使用 KnockoutJS 维护我的所有实体集合。谢谢!
编辑:我有这样的:
$.when(DeleteDependentInstallations())
.then (function() {
...
});
DeleteDependentInstallations 看起来像(伪代码):
Search the installations collection;
If installation.ID equals server.InstallationID
{
Add to dependent installations collection;
}
Repeat until the whole collection is searched;
for (i = 0; i < dependentInstallations.length; i++)
{
DeleteInstallation(dependentInstallations[i]);
}
DeleteInstallations 是一个使用 $.postJSON 函数的简单函数。
问题是 .then 函数在第一个 JSON 响应之后立即执行。