我正在通过 chrome.sockets 将文件上传到 ftp,但套接字缓冲区的大小是有限的,所以我需要遍历 blob 并发送更小的数据块。我尝试了几种带有闭包和回调的方法,但对我有用的唯一方法是 do/while 循环,这当然是阻塞的。部分问题是需要在闭包中保留多个变量。你能建议更好的循环blob的方法吗?
do
{
chunk = blob.slice(start,end)
start =end
end =end + 8192
chrome.socket.write(this.info.socketId, Socket.string2buffer(chunk), function(writeInfo) {});
}
while (chunk.length>0);
扩展的完整代码(单用途 ftp 管理器)https://github.com/vanous/minime-content-manager/tree/master/chromium-ext-broadcast