javascript - 在 Node 中连续、异步设置变量的最简洁方法
问题描述
比方说,我有一个导入的异步函数,它返回一个值和一个bearer
将值分配给的变量,如下所示:
const returnBearer = require("returnBearer.js")
let bearer = returnBearer()
// Some other code that keeps executing continuously.
导出的函数returnBearer.js
如下所示:
const returnBearer = () => {
setTimeout(() => { return("ABearerToken") }, 1000)
}
现在,由于上述块下面的代码需要连续执行,永远,我需要将bearer
变量设置为每1秒返回returnBearer
一次的值,换句话说,重新运行函数并重新分配值,而不中断其余的代码。
我在这方面有过几次尝试。我将bearer
变量设为全局变量,我使用了一个eventEmitter
和递归。我也知道setInterval
,但它不能很好地工作,因为里面的代码returnBearer()
是异步的,它可能会导致问题。然而,其中大多数都有效。但是看起来很不整洁,很难阅读并且占用很多行,而使用全局变量非常容易,但是在导入的函数和主代码之间创建了硬编码关系。
一句话:setTimeout
如果需要,改变 to 承诺是完全可以接受的。
那么,在您看来,最快、最简单、最整洁的实现方式是什么?
解决方案
推荐阅读
- css - 将 1 行与 4 个 div 分成 2 行并使用媒体查询将列
- android - 架构师组件中的 ViewModel - android
- javascript - 在 HTML 中使用 curl 下载文本文件
- c - winsock 客户端反复尝试连接服务器
- python - 如何检测套接字/连接在 Python 3.6 中突然关闭
- python - Python - 替换后如何恢复原始字符串?
- asp.net-mvc - 模型中的 MVC 映射数组,用于将模型传递给控制器
- makefile - 制作具有多个潜在依赖项的文件
- javascript - 我可以避免在 if 中创建对象吗?
- c# - 尝试检查 Button.Content.Inputs 是否为真(井字游戏简单游戏)