1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- program askmom;
- {$mode objfpc}
- {
- Translated from
- https://scotch.io/tutorials/javascript-promises-for-dummies
- }
- uses
- browserconsole, JS, Web;
- var
- isMomHappy : Boolean = False;
- Procedure LetsAskMom;
- procedure MomDecides (resolve, reject : TJSPromiseResolver);
- begin
- if IsMomHappy then
- Resolve(New(['brand','Samsung','Color','Black']))
- else
- Reject(TJSError.New('Mom is not happy'));
- end;
- Function Disappointed(aValue : JSValue): JSValue;
- begin
- Writeln('No present because: ',aValue);
- end;
- Function Showpresent(aValue : JSValue): JSValue;
- begin
- Writeln('Received : ',aValue);
- end;
- Var
- willIGetNewPhone : TJSPromise;
- begin
- TJSPromise.New(@MomDecides).
- _Then(@ShowPresent).
- Catch(@Disappointed);
- end;
- begin
- Writeln('Did something bad, making mom unhappy');
- isMomHappy:=False;
- LetsAskMom();
- Writeln('Made up with mom, making her happy again');
- isMomHappy:=True;
- LetsAskMom();
- end.
|