【发布时间】:2017-08-23 07:25:02
【问题描述】:
我正在构建一个应用程序,该应用程序必须每 2 秒轮询一次远程设备(生成器 fn sendRequests())。
使用 setInterval 调用生成器 fn 的正确方法是什么,它不是生成器,也不会产生
function * sendRequests() {
// multiple remote async requests are sent
}
var timer = setInterval(() => {
// yield sendRequests()
}, 2000)
【问题讨论】:
-
为什么是生成器函数?最多不应该是
async function吗?您是否忘记将其包装在co.wrap(或您正在使用的任何异步运行程序库)中? -
为了清楚起见,我将更新问题,但该函数是生成器。它在 AdonisJS 平台上使用生成器代替 Promise 和回调进行异步操作,并且还没有为 ES7 异步 fns 做好准备。在这种情况下,异步操作是一个远程 MODBUS/TCP 请求。
标签: javascript asynchronous setinterval adonis.js