【发布时间】:2016-09-26 13:20:47
【问题描述】:
我有(改编的)以下代码:
function saveFiles(saving_dir, content, name) {
var i = 1;
return new Promise(function(resolve) {
chrome.fileSystem.getWritableEntry(saving_dir, function(entry) {
entry.getFile(name, {
create: true
}, function(entry) {
entry.createWriter(function(writer) {
writer.onwrite = function() {
writer.onwrite = null;
writer.truncate(writer.position);
};
writer.onwriteend = function(e) {
console.log(i)
i++;
console.log('written! "' + name + '"')
// resolve();
};
writer.onerror = function(e) {
console.log('failed! "' + name + '"');
console.log(e);
};
var blob = new Blob([JSON.stringify(content)], {
type: 'text/javascript'
});
writer.write(blob);
}, function(e) {
trace.innerText = 'error is ' + e;
console.log(e);
});
});
});
});
}
saveFiles('/', 'hola', 'delete.txt');
而且我不知道为什么这会执行两次onwriteend 事件,console.log(i) 给出1 和2。
如果我在两者之间添加日志,则除了事件之外的所有内容都会调用一次。有什么建议吗?
【问题讨论】:
-
我看到这是stackoverflow.com/questions/6792607/…的重复问题,我已经标记了它,但我应该删除这个问题吗?
-
我不认为这是一个完全相同的副本 - 这对
onwriteend有不同的问题。
标签: javascript filesystems dom-events google-chrome-app