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)这个写入文件的回调操作,而且写入的数据是最后一次的。
怎么样才能让它每循环一次都执行回调函数呢?
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:你那个for循环中的x我也没看到应用
2:var = each_eve = "...."; //这个也有问题
1、在循环中取出数据库的数据存入全局数组中,假设为var show = [];在循环结束后调用aaa();
2、定义一个function aaa(),在方法中将数组show.splice(0,1),取到后一个数值,假定为var value = show.splice(0,1)传入方法appendF(value).
3、定义appendF(value),其中value作为方法中回调函数的参数,并在回调函数成功后调用aaa()方法取下一个值。这样就可以保证循环的每次数据与回调函数参数一一对应了。