首页 > 解决方案 > 在 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 承诺是完全可以接受的。

那么,在您看来,最快、最简单、最整洁的实现方式是什么?

标签: javascriptnode.jsasync-await

解决方案


推荐阅读