我正在将TypeScript项目重写到Golang,遇到了一个问题:
我正在运行一个for循环,它在程序加载时启动异步worker.如果我理解正确,Go routine 是一种并发运行异步代码的方法.我想做的是在函数完成后无限期地重新启动它.
在TypeScript中,它看起来像
async function init() {
const count = async Users.getCount();
// run all workers concurrently
for (let i = 0; i < count; i += PER_WORKER) {
const id = i / PER_WORKER;
worker(id);
}
}
async worker(id: number) {
await new Promise((resolve) => {
// do stuff
resolve();
})
// restart function
worker(workerId);
}
在Go中,我有非常相似的东西,但当重新调用内部函数时,它只是一团糟?我曾想过按时间间隔运行该函数,但我无法提前知道所需的时间...
非常感谢.