javascript - 如何仅从 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 次,那么我将需要onResponse
3 次并且我的变量isLoading
工作不正常。
function loadData() {
isLoading = true;
asyncFunction.then(onResponse);
}
我怎样才能只从最后一个电话中得到响应而忽略所有之前的电话。
解决方案
每次调用异步函数时,我都会存储一些值并增加它。然后,在处理程序中,您可以检查该值是否仍然相同。如果没有,就返回 - 这意味着之后还有另一个电话。
推荐阅读
- amazon-web-services - AWS SignatureDoesNotMatch 大多数时候
- excel - 在一个单元格中输入项目代码时,如何获取描述和价格以自动进入其他单元格
- java - PreparedStatement 不适用于 Java 中的 Sybase IQ
- c++ - 不太明白 & 运算符的地址在这个结构中做了什么以及它如何访问其他成员变量
- sql - ORACLE SQL 小时范围
- python - scipy.io.wavfile.read 中的 EOF
- reactjs - React 不会在状态更改时重新渲染组件
- reporting-services - 检查从 SSDT/SSRS 发送到服务器的渲染 SQL
- c++ - 是否可以读取和写入头文件?
- ios - Travis 以 65 代码退出,无法创建捆绑实例