使用 nodejs 和套接字,我正在尝试在循环中一起加载流。有人可以告诉我哪里出错了吗?



下面是代码,我试图通过套接字中的ajax添加图像。但是当我以这种方式运行代码时,所有数据都会附加到最后一个图像,即使它处于循环状态。

socket.on('start', function (cou) {
for (var i = 0; i < cou.length; i++) {
var image = document.getElementById('cam'+i);
var divSocket = io(location.origin + 'cam'+i);
divSocket.on('data', function (data) {
var bytes = new Uint8Array(data);
image.src = 'data:image/jpeg;base64,' + bytes;
});
};
});

有人可以告诉我哪里出错了吗?

> node.js 将开始异步执行此循环,这意味着它不会等到完成写入,因此变量 i 的值会发生变化。 请改用异步循环,如下所示:

socket.on('start', function (cou) {
let i = 0;
async.eachLimit(cou, 1, function(el, done){
var image = document.getElementById('cam'+i);
var divSocket = io(location.origin + 'cam'+i);
divSocket.on('data', function (data) {
var bytes = new Uint8Array(data);
image.src = 'data:image/jpeg;base64,' + bytes;
});
divSocket.on('end', function () {
i++;
done();
});
};
});

看看这里

p.s:我没有运行代码只是要注意:)

相关内容

  • 没有找到相关文章

最新更新