HTML5 fileSystem在循环中写入文件问题var rs_len = 3;//文件个数
for(var x=0;x<rs_len;x++){
//...从数据库读取数据...
var = each_eve = "...."; 
fs.root.getFile(filePath, {create: false}, function(fileEntry) {
   // Create a FileWriter object for our FileEntry.
   fileEntry.createWriter(function(fileWriter) {
      fileWriter.seek(fileWriter.length); // Start write position at EOF.
      var bb = new window.WebKitBlobBuilder(); // Create a new Blob on-the-fly.
      bb.append(addContent);
      fileWriter.write(bb.getBlob('text/plain'));
      alert("in>>"+filePath);
   }, Clickmed.onError);
}, function(err){
   //出错情况/////////////////////////////////////////////////////////////////
   if(err.code==FileError.NOT_FOUND_ERR){
alert("File or Dir Not Fount>>"+filePath);
Clickmed.createFile(fs,filePath);
   }
});
}出现的问题是:循环3次,但是只有最后一次才执行fileEntry.createWriter(function(fileWriter)这个写入文件的回调操作,而且写入的数据是最后一次的。
怎么样才能让它每循环一次都执行回调函数呢?

解决方案 »

  1.   

    没用过这个
    1:你那个for循环中的x我也没看到应用
    2:var = each_eve = "...."; //这个也有问题
      

  2.   

    我自己弄好了,大概思路是:
    1、在循环中取出数据库的数据存入全局数组中,假设为var show = [];在循环结束后调用aaa();
    2、定义一个function aaa(),在方法中将数组show.splice(0,1),取到后一个数值,假定为var value = show.splice(0,1)传入方法appendF(value).
    3、定义appendF(value),其中value作为方法中回调函数的参数,并在回调函数成功后调用aaa()方法取下一个值。这样就可以保证循环的每次数据与回调函数参数一一对应了。