javascript - 异步函数作为 setInterval Nodejs 的参数

标签 javascript node.js asynchronous async-await setinterval

当我将异步函数作为参数传递给 setInterval 时,它有一个奇怪的行为:它工作了几次,但随后毫无异常(exception)地停止了。

setInterval(() => doSomethingAsync(), 1000);

我不知道为什么。

我尝试实现自己的 setIntervalAsync 但行为是相同的:

const sleep = ms => new Promise(res => setTimeout(res, ms));

const setIntervalAsync = async (func, interval) => {
  while (true) {
    await func();
    await sleep(interval);
  }
};

// schedule it
setIntervalAsync(async () => await doSomethingAsync(), 1000);

最佳答案

问题出在其他地方,与 setInterval 或我的回调完全无关。

setInterval 在异步函数中运行良好。

关于javascript - 异步函数作为 setInterval Nodejs 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58958238/

相关文章:

javascript - 基本 AJAX 脚本不起作用

node.js - Webpack 捆绑不包含特定模块,例如 'sequelize'

javascript - 使用 node.js 从麦克风检测音频

node.js - 多个异步写入 Node 中的同一文件

ios - 从 Swift 函数中的异步调用返回数据

c# - 从同步服务层边界调用异步方法

javascript - SetInterval 60秒倒计时问题jQuery

javascript - JSON 响应位于数组中,但仍引发错误 "NgFor only supports binding to Iterables such as Arrays"

javascript - Django 模板中的 Vue.js

javascript - 获取Azure上传的blob文件url