Javascript webrtc中的多对等连接

Javascript webrtc中的多对等连接,javascript,Javascript,我使用array pc将RTPeerConnections从一个客户端保存到其他客户端,然后调用createOffer pc是全局变量,但有一个错误:在createOffer函数中,I get pc[list[I]]未定义。我怎么修理它 for (var i = 0; i<list.length - 1; i++) { pc[list[i]] = createPC(list[i]); pc[list[i]].createOffer(function (localDesc)

我使用array pc将RTPeerConnections从一个客户端保存到其他客户端,然后调用createOffer

pc是全局变量,但有一个错误:在createOffer函数中,I get pc[list[I]]未定义。我怎么修理它

for (var i = 0; i<list.length - 1; i++) {
    pc[list[i]] = createPC(list[i]);
    pc[list[i]].createOffer(function (localDesc) {
        pc[list[i]].setLocalDescription(localDesc);
        send(localDesc, list[i]);
    }, doNothing, constraints);
}

必须是for循环内部回调的常见问题,请尝试绑定i的值:

编辑:

另一个选项可能是我假设列表是唯一ID的列表:

...
for (var i = 0; i<list.length - 1; i++) {
    var id = list[i];
    pc[id] = createPC(id);
    pc[id].createOffer(onOffer.bind({id:id}), doNothing, constraints);
}
...
function onOffer(localDesc){
    pc[this.id].setLocalDescription(localDesc);
    send(localDesc, this.id);
}

必须是for循环内部回调的常见问题,请尝试绑定i的值:

编辑:

另一个选项可能是我假设列表是唯一ID的列表:

...
for (var i = 0; i<list.length - 1; i++) {
    var id = list[i];
    pc[id] = createPC(id);
    pc[id].createOffer(onOffer.bind({id:id}), doNothing, constraints);
}
...
function onOffer(localDesc){
    pc[this.id].setLocalDescription(localDesc);
    send(localDesc, this.id);
}