I got it working...
Change writedata fn to
function writedata() {
console.log(filesystem);
console.log(ids);
for (var i = 0; i < ids.images.length; i++) {
var n = -1;
setTimeout(function() {
(function() {
filesystem.root.getFile(ids.images[n + 1].name, {
create: true
}, function(fileEntry) {
console.log(fileEntry);
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
console.log("image successfully written to filesystem.");
};
var blob = new Blob([ids.images[n].blob]); // instead i (ie looping variable), n is used which increments only after writing each file to file system
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
n = n + 1;
})(i)
}, i * 1000);
}
}