Remove raceyness of getter API

This commit is contained in:
Surma
2018-11-28 19:17:39 +00:00
parent 9a230adc03
commit 853b305465
3 changed files with 11 additions and 5 deletions

View File

@@ -108,12 +108,16 @@ export default class App extends Component<Props, State> {
private exposeAPI() {
const api = {
setFile: (blob: Blob, name: string) => {
this.setState({ file: new File([blob], name) });
return new Promise((resolve) => {
this.setState({ file: new File([blob], name) });
document.addEventListener('squooshingdone', () => resolve(), { once: true });
});
},
getBlob: async (side: 0 | 1) => {
if (!this.state.file || !this.compressInstance) {
throw new Error('No file has been loaded');
}
await this.compressInstance.compressionJobs[side];
return this.compressInstance.state.images[side].file;
},
};