首页 > 解决方案 > 如何仅从 async/await 函数中获取最后一个响应

问题描述

async/await如果调用多个 async/await 函数,如何忽略所有旧调用函数。

例如,这是我的例子。

let isLoading = false;

const onResponse = dateTime => {
  console.log(dateTime);
  isLoading = false;
}

const asyncFunction = async () => {
  await delay(1000);
  return new Date();
}

现在例如,如果我asyncFunction在 1 秒内调用该函数 3 次,那么我将需要onResponse3 次并且我的变量isLoading工作不正常。

function loadData() {
  isLoading = true;
  asyncFunction.then(onResponse);
}

我怎样才能只从最后一个电话中得到响应而忽略所有之前的电话。

标签: javascriptasync-await

解决方案


每次调用异步函数时,我都会存储一些值并增加它。然后,在处理程序中,您可以检查该值是否仍然相同。如果没有,就返回 - 这意味着之后还有另一个电话。


推荐阅读