Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   TRestRequest ExecuteAsync Parameter Frage (https://www.delphipraxis.net/193207-trestrequest-executeasync-parameter-frage.html)

Strally 5. Jul 2017 13:15

TRestRequest ExecuteAsync Parameter Frage
 
Hallo,

ich bin dabei eine mobile App mit Delphi zu schreiben und möchte den Restrequest Async absetzten damit das laden der Daten die UI nicht blockiert.

Hierfür muss RestRequest mit ExecuteAsync aufgerufen werden:

function ExecuteAsync(ACompletionHandler: TCompletionHandler = nil; ASynchronized: Boolean = True;
AFreeThread: Boolean = True; ACompletionHandlerWithError: TCompletionHandlerWithError = nil): TRESTExecutionThread;

ACompletionHandler: TCompletionHandler = diesen Parameter setze ich mit procedure LoadAdressen; um
ASynchronized, AFreeThread : stellt auch kein Problem dar

ACompletionHandlerWithError: TCompletionHandlerWithError: Wie muss dieser Parameter implementiert werden? Bräuchte ihn um mögliche Exceptions die auftreten auszuwerten.
In System.SysUtils ist er folgendermaßen deklariert: TProc<T> = reference to procedure (Arg1: T); Habe aber keine Ahnung wie das aussehen müsste :(

Für Hilfe wäre ich sehr dankbar.

Lg
Strally

TiGü 5. Jul 2017 15:31

AW: TRestRequest ExecuteAsync Parameter Frage
 
Delphi-Quellcode:
var
  // aus der Unit REST.Types ganz oben: TCompletionHandlerWithError = TProc<TObject>;
  MyCompletionHandlerWithError: TCompletionHandlerWithError;
begin
  MyCompletionHandlerWithError := procedure(AObject: TObject)
    begin
      if Assigned(AObject) and (AObject is Exception) then
      begin
        raise Exception(AObject); // oder was immer du möchtest!
      end;
    end;

  FRESTRequest.ExecuteAsync(nil, true, true, MyCompletionHandlerWithError);
end;

Strally 6. Jul 2017 06:24

AW: TRestRequest ExecuteAsync Parameter Frage
 
Guten Morgen,

vielen Dank für deine Antwort ... werde ich gleich mal ausprobieren :-)

Und wieder was gelernt :thumb:

Mfg
Strally


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz