gpt4 book ai didi

javascript - 避免在页面加载期间从 2 个 Controller 重复调用 AngularJS 中的相同 API

转载 作者:行者123 更新时间:2023-11-29 16:58:17 26 4
gpt4 key购买 nike

我有一个使用 AngularJS 构建的单页应用程序。当页面首次加载时,将执行两个 Controller ,它们是“Controller1”和“Controller2”。

  • 他们每个人都需要调用同一个 WebAPI 以满足其逻辑要求。
  • 此外,“Controller1”代码首先执行,但由于代码的异步性质,“Conroller2”代码在 Controller1 调用 WebAPI 成功返回之前开始执行。

问题:如何确保只有 Controller1 调用 WebAPI,以便 Controller2 简单地使用 Controller1 中的调用而不是重复调用?

Controller 1

dashboardDataService.getAllDashboards().then(onDashboardListReceived)

Controller 2

dashboardDataService.getAllDashboards().then(onDashboardListReceived)

最佳答案

.service('dashboardDataService', function($http){
var dashboardDataServiceScope = this;

var allDashboardsPromise = false;

dashboardDataServiceScope.getAllDashboards = function(){
if(!allDashboardsPromise){
allDashboardsPromise = $http.post(...);
}
return allDashboardsPromise;
};
});

这会做的是第一次创建一个 promise ,然后每次其他东西调用它时都会返回相同的 promise 。因此,您可以将多个连接成一个。

关于javascript - 避免在页面加载期间从 2 个 Controller 重复调用 AngularJS 中的相同 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30263800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com