From a5a55469e9a5d60101e120c90e75b710f0e8001c Mon Sep 17 00:00:00 2001 From: michael Date: Fri, 14 Aug 2020 09:47:36 +0000 Subject: [PATCH] * Fixes for Blob handling --- packages/rtl/Rtl.BrowserLoadHelper.pas | 28 ++++++++++++++++---------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/packages/rtl/Rtl.BrowserLoadHelper.pas b/packages/rtl/Rtl.BrowserLoadHelper.pas index 1aa85af..934db6f 100644 --- a/packages/rtl/Rtl.BrowserLoadHelper.pas +++ b/packages/rtl/Rtl.BrowserLoadHelper.pas @@ -74,6 +74,17 @@ end; class procedure TBrowserLoadHelper.LoadBytes(aURL: String; aSync: Boolean; OnLoaded: TBytesLoadedCallBack; OnError: TErrorCallBack); + function doFetchFail(response : JSValue) : JSValue; + + begin + Result:=False; + if isObject(Response) and (TJSObject(Response) is TJSError) then + OnError('Error 999: '+TJSError(Response).Message) + else + OnError('Error 999: unknown error'); + end; + + function doFetchOK(response : JSValue) : JSValue; var @@ -90,20 +101,15 @@ class procedure TBrowserLoadHelper.LoadBytes(aURL: String; aSync: Boolean; OnLoa Res.Blob._then( function (value : JSValue) : JSValue begin - OnLoaded(TJSArrayBuffer(value)); + TJSBlob(Value).ArrayBuffer._then(function(arr : JSValue) : JSValue + begin + OnLoaded(TJSArrayBuffer(arr)) + end + ).Catch(@DoFetchFail); end - ); + ); end; - function doFetchFail(response : JSValue) : JSValue; - - begin - Result:=False; - if isObject(Response) and (TJSObject(Response) is TJSError) then - OnError('Error 999: '+TJSError(Response).Message) - else - OnError('Error 999: unknown error'); - end; function StringToArrayBuffer(str : string) : TJSArrayBuffer;