StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
StackGenVis/frontend/node_modules/fs-es6/fileWriterSync.js

41 lines
805 B

4 years ago
export default class fileWriterSync {
constructor(writer, path) {
this.writer = writer
this.path = path
this._stack = Promise.resolve()
}
get stack() {
return this._stack
}
set stack(promise) {
this._stack = promise
}
write(content) {
return this._execute(this.writer.write, content)
}
async seek(position) {
await this.stack
this.writer.seek(position)
}
truncate(length) {
return this._execute(this.writer.truncate, length)
}
_execute(action, data) {
this.stack = this.stack.then(()=> {
return new Promise((resolve, reject) => {
this.writer.onwriteend = resolve
this.writer.onerror = error => reject({path: this.path, error})
action.call(this.writer, data)
})
})
return this.stack
}
}