如何在进行多个 api 调用时选择最新的 api 调用

How to pick latest api call when multiple api call were made

当多次 API 调用重复进行时,我们 运行 遇到了一个问题 UI 有时会呈现错误的数据。

示例:

onPageLoad 事件我有 5 API 个电话,我们有日期选择器,我们可以从那里 select 日期。当用户尝试更改日期 select 或将进行所有 5 API 调用以刷新数据假设最初我 select 最后一天编辑并且页面已加载,现在我更改为上周然后一个月然后回到最后一天现在有 15 个异步 API 调用并且在 UI 我们正在渲染最近到达的 API 调用(因为 JS 中的异步行为). angular 中是否有任何机制来控制这种行为。

预计:

在上面的示例中,我只想显示 UI 中最新的 API 调用数据(无论承诺何时得到解决)我只想显示最后一天的数据。

使用此代码,之前的任何 api 调用都将被拒绝。这意味着只有最后一次通话才能解决。

var timeout;

function callApi() {
    // Cancel any previous api call:
    timeout && timeout.resolve();

    // Create a new timeout:
    timeout = $q.defer();

    // Make the api call, passing in the timeout:
    return $http.get('/api', {timeout: timeout.promise});
}