node.js - 运行 2 个重复的异步函数,而不在等待时暂停另一个函数

标签 node.js asynchronous async-await mean

所以我尝试运行两个都使用异步的重复函数。这两个函数在某些时候都使用异步等待功能。问题是,当一个函数使用 wait 时,它会暂停这两个函数。我该如何阻止这种情况发生,以便当一个函数使用等待时另一个函数不会暂停。谢谢。下面的例子。

const collectInfo = async () => {
    return new Promise(async function(resolve, reject) {
        // Collect info from the database then
        resolve(data);
    });
}
const functionOne = async () => {
    timeLeft = 5000;

    var timerOne = setInterval(async function(){
        if(timeLeft === 0){
            var getInfTwo = await collectInfo();
            console.log(getInfOne);
            startFunctionOne();
            clearInterval(timerOne);
        }
        timeLeft--;
    },  10);
}
const functioTwo = async () => {
    timeLeft = 10000;

    var timerTwo = setInterval(async function(){
        if(timeLeft === 0){
            var getInfOne = await collectInfo();
            console.log(getInfOne);
            startFunctionTwo();
            clearInterval(timerTwo);
        }
        timeLeft--;
    },  10);
}

const startFunctionOne = async () => {
    functionOne();
}
const startFunctioTwo = async () => {
    functioTwo();
}

startFunctionOne();
startFunctioTwo();

最佳答案

请注意,由于您在 functionOne 和 functionTwo 中没有使用关键字 var 或 let 作为变量 timeLeft,因此该变量成为全局变量,因此您在两个函数中使用相同的全局变量。

您无法选择何时“暂停”该函数,它会通过异步自动完成,如果您的两个函数同时启动并且正在等待输入/输出,则无需执行任何操作。

关于node.js - 运行 2 个重复的异步函数,而不在等待时暂停另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51659061/

相关文章:

java - 如何在android中的azure离线同步中异步同步多个表

mvvm - 在从 webservice 服务检索数据之前和之后从 ViewModel 设置 ProgressBar 可见性

jquery - Cheerio jquery Node js : obtaining href value

node.js - 更新 Jest 测试库后出现意外标记 (SyntaxError)

javascript - node.js - 控制 Promises 队列

java - 在没有多线程的情况下使用 Future 有什么意义?

c# - HttpClient 等待 SendAsync 死锁

c# - 如何确保多个异步下载的数据按照开始的顺序保存?

node.js - 在expressjs中提供应用程序时,Angular应用程序导航不适用

javascript - $state.go 方法不切换到其他状态 - angularjs