gpt4 book ai didi

javascript - 无法在此 Node 中添加超时 http get 请求

转载 作者:行者123 更新时间:2023-12-04 02:21:26 24 4
gpt4 key购买 nike

我有这段代码,其中应该每 5 秒调用一次函数 download,但它似乎不起作用,因为所有图像都是同时下载的。

const download = function (uri, filename, callback) {
request.head(uri, function (err, res, body) {
request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
});
};

for (let i = 0; i < 100; i++) {
setTimeout(function () {
download(
'https://www.thispersondoesnotexist.com/image',
`images/image${i}.jpg`,
function () {
console.log('done');
});
},
5000
)
}

最佳答案

您的 setTimeout 函数是用 5000 硬编码的。这意味着您的循环从 0 运行到 99,并设置了 100 个超时,每个超时的等待时间为 5000。由于循环执行得非常快,因此执行的超时也非常接近。

你需要这样的东西:

 setTimeout(function() {
...
},
5000 * i
)

这会将超时从 0 * 5000 分散到 99 * 5000 毫秒。

关于javascript - 无法在此 Node 中添加超时 http get 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62051032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com