当promise中发生错误时,数据缓存在服务器或客户端上,或者根本不缓存在AngularJS中

Is data cached on server or client or not at all in AngularJS when an error occurs in a promise?

本文关键字:存在 缓存 或者 客户端 AngularJS 服务器 错误 数据 promise      更新时间:2023-09-26

请记住,我运行的是旧版本的AngularJS(1.0?),所以情况可能已经改变,但我的代码看起来像:

promise = $http.get(urlFormattedString).success(function (data) {
                                data.forEach(function (result) {
                                    //do something with result and $scope});
promises.push(promise);
$q.all(promises).then(function (data) {
//do something good when everything works!
};

当没有抛出错误时,一切都"正常",但我的问题是,当其中一个承诺抛出错误(比如20中的1)时会发生什么?让我们让它更有趣(更接近我的应用程序),并假设每个promise都是从数据库(在我的例子中是MongoDB)请求数据。

如果我必须重新运行所有内容,这是否意味着所有数据都必须重新获取?我是否依赖数据库来缓存数据,从而使重复请求运行得更快?或者可能是服务器(在我的例子中是NodeJS)缓存数据?按照这些思路,数据实际上是什么时候从服务器发送到客户端的?是只有在所有承诺成功后,还是每个承诺的数据都单独返回给客户?如果是的话,Angular会缓存吗?

把它放在这里让我意识到这是非常复杂的,需要考虑很多场景。如有任何有关阅读/文档方面的帮助或建议,不胜感激。谢谢

建议您熟悉浏览器开发工具的网络选项卡。

您可以看到对所有资源的每一个请求,从html到图像再到脚本,以及ajax请求。这将让你更好地了解应用程序在中的工作方式

至于错误。。。除非你实现了错误处理,否则你的应用程序只会在没有任何错误指示的情况下失败。

至于缓存。。。您的ajax请求不会缓存在客户端,除非您在服务器上实现了缓存机制,否则它们也不会缓存在那里