Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // V1: Mensur
- public uploadImage(): Promise<void> {
- // File for Upload
- const targetPath: string = this.pathForImage(this.lastImage);
- const reader = new FileReader();
- return new Promise<void>((resolve, reject): void => {
- this.file.resolveLocalFilesystemUrl(targetPath)
- .then(entry => (<FileEntry>entry).file(file => {
- reader.onloadend = (): void => {
- const imgBlob = new Blob([reader.result], { type: file.type });
- this.uploadXHR(imgBlob).then(
- () => resolve(),
- () => reject()
- );
- };
- reader.readAsArrayBuffer(file);
- }))
- .catch(err => console.warn("'AvatarProvider.uploadImage()'", err));
- });
- }
- // V2: Better promise
- public uploadImage(): Promise<void> {
- const targetPath: string = this.pathForImage(this.lastImage);
- const reader: FileReader = new FileReader();
- let file: File = null;
- return this.file
- .resolveLocalFileSystemUrl(targetPath)
- .then((entry: FileEntry) => new Promise<void>((resolve) => {
- entry.file((loadedFile: File): void => {
- file = loadedFile;
- reader.readAsArrayBuffer(file);
- reader.onloadend = resolve;
- }
- ))
- .then(() => new Blob([reader.result, { type: loadedFile.type }]))
- .then((imgBlob: Blob) => this.uploadXHR(imgBlob))
- .catch((error: Error) => console.warn("AvatarProvider.uploadImage()", 'Error while uploading image', err));
- }
- // V3: Async / await (best)
- public async uploadImage(): Promise<void> {
- try {
- const targetPath: string = this.pathForImage(this.lastImage);
- const reader: FileReader = new FileReader();
- const entry: FileEntry = await this.file.resolveLocalFilesystemUrl(targetPath);
- const loadedFile: File = await new Promise<File>((resolve) => {
- entry.file((loadedFile: File): void => {
- file = loadedFile;
- reader.readAsArrayBuffer(file);
- reader.onloadend = resolve;
- }
- });
- const imgBlob: Blob = new Blob([reader.result, { type: loadedFile.type }]);
- return await this.uploadXHR(imgBlob);
- } catch(error) {
- console.warn("AvatarProvider.uploadImage()", 'Error while uploading image', err);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement