node.js - NodeJs从变量上的异步获取返回数据以重用
问题描述
我已经搜索了几个小时(没有成功)关于如何让异步函数返回结果,将其存储在函数外部的变量中并重用该数据。
我的问题是我在一些似乎不必要的函数中一遍又一遍地获取相同的数据。
基本上这就是我想要的,现在它正在返回一个承诺。
let leads;
try {
var result = await fetch('http://localhost:3000/lds');
leads = await result.json();
return leads;
} catch (e) {
// handle error
console.error(e)
}
}
var results = readDb();
console.log(results);
例如,最初我运行一个函数来获取数据并创建一个表。
其次,我运行另一个函数来获取相同的数据来创建分页按钮。
第三,我再次运行另一个获取相同数据的函数,并监听分页按钮单击以显示相应页码的数据。
理想情况下,我只会获取一次数据。
提前致谢!
解决方案
我们可以leads
在函数外部定义并检查是否需要获取它:
let leads;
const getLeads = async function() {
try {
if (!leads) { // fetch leads only they weren't already loaded
const result = await fetch('http://localhost:3000/lds');
leads = await result.json();
}
return leads;
} catch (e) {
// handle error
console.error(e)
}
}
推荐阅读
- openedge - 有没有办法使用正在进行的动态查询有条件地应用内部联接?
- java - Java JDBC 在插入后从 DEFAULT 中检索值
- bash - 使用 BASH 文件名中的参数作为集群上 Julia 脚本的参数
- python - 我应该如何使用纯 OpenCV 函数将图像分割成多个部分,这样我就不必将它从我的 GPU 上取下来?
- c - C:将矩阵传递给函数的所有可能方法以及有关 argc 和 argv 的一些信息
- javascript - 如何让 API 更改其数据?
- javascript - 如何通过 Dotnet 和 Docker 使用 React 进行热重载
- functional-programming - Hindley-Milner - 有条件换人?
- java - 除了 SimpleDateFormat.parse 之外,是否还需要使用 Regex 来检查日期完整性?
- javascript - 显示来自 Django 的 HTML 内容