我有个excel数据,要传到服务器上
大概有1W条数据,其中有重复值
服务端写了,先查数据库中是否有这个id,如果有先删除,再写入,这样保持唯一最新数据
但是js循环上传1w条数据的时候,不会延迟设定的秒数执行.不知道哪里有错下面是我写的循环上传代码
data=list[0].data
itemSend=[];
for (var i = data.length - 1; i >= 0; i--) { //这里是循环定时 上传
setTimeout(deal(i),i*1000);
}
function deal(i) { //这个是上传具体操作代码
console.log(i);
itemSend[i]=toItem(data[i],i);
toServer(itemSend[i]);
}
跑起来的时候js 并没有延迟执行.不知道为什么....请大家指点一下该怎么写.是哪里写错了
setTimeout 对题主理解造成了影响,重新写了一个demo。
以下是老答案
使用setTimeout。
您确定 1秒内能执行完吗?(如果执行不完,接着多任务执行,CPU过高)
您确定 1秒内执行不完吗?(0.1秒能完成,干嘛每次都要等一秒)
为什么 导入完 一个任务后,接着再执行 下一个导入任务,而不是靠猜测,去 隔 一秒 执行一次呢?
不用担心无尽的callback,一个简单的控制类,就可以完成这么简单的工做,参考了Promise的思想。
完成的简单的代码