创建web工作者,一次只处理几个文件- javascript
Create web workers to process only few files at a time - javascript
我正在使用webworker概念上传文件。如果我选择10个文件上传,我最终会创建10个网络工作者来处理它们。我正在考虑创建5个web worker线程来处理第一批5个文件的上传,终止5个线程然后选择下一批5个文件上传。我不确定如何实现它。请建议。
我当前的逻辑是:
for (var i = 0; i<files.length; i++){
//create web worker
//upload the file
//terminate the web worker
}
编辑:为了实现这一点,我试着做这样的事情,但这是一个无限循环,永远不会中断。请告诉我出了什么问题。
var num = 5;
var alreadyPicked = new Set();
var pickList = [];
var isPicked = false;
while(true){
if( pickList.length == num ){
$timeout( function() {}, 3000); //wait for 3 secs
}
for(var j=0; j<files.length; j++){
isPicked = alreadyPicked.has( files[j] );
if( !isPicked ){
pickList.push( files[j] ); //add the file to the array if it is not processed
}
if( pickList.length === num ){
break;
}
}
if( pickList.length > 0 ){
for( var j=0; j<pickList.length; j++ ){
$scope.process( pickList[j] );
}
}
else{
break;
}
}
$scope.process = function(item){
//rest api call to upload the file to server
if( success || error ){
pickList.splice( pickList.indexOf(item,1));
alreadyPicked.add(item);
}
一个想法:
- 之前创建一个数组,列出所有文件。 从这个数组中抓取5个元素进行循环。
- 当一个worker完成后,从数组中删除这个文件名 从数组中抓取另外5个项目,并重复。
相关文章:
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- 用PHP/MMySQL和JavaScript填充几个HTML分区
- 在几个浏览会话中保存javascript变量
- 在javascript上创建,以处理单击后要隐藏的几个单选按钮
- 如何在Javascript中的对象数组的最后一个对象之后附加几个新对象
- Javascript:查找前几个字母中的字符串
- 几个HTML文件上的页面特定JavaScript函数
- javascript:检查是否存在几个特定的对象属性(同样在coffeescript中)
- 缩短几个元素的onclick代码 - JavaScript
- 用javascript替换文本中的几个字符串 - 如何添加更多变量
- 在javascript中为几个页面设置一个cookie
- 一个 JavaScript 函数调用其他几个函数
- 将鼠标悬停在 JavaScript 选项卡上,页面上有几个选项卡组
- 对于循环逻辑,数组中的几个值 - Javascript 和 JQuery
- 在几个关于fopen的网站上找到的Javascript示例对我不起作用
- JavaScript 等待几个回调完成
- 如何将最近几个月计算为一个时期,并通过javascript更新到图表
- 使用 JavaScript 一个接一个地播放几个音频
- 使用动态 src javascript 创建几个新的 Image() 对象
- 我每隔几个小时使用 JavaScript 的自定义文本不起作用