12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- program tryfetchmany;
- {$mode objfpc}
- uses
- browserconsole, JS, Web, SysUtils, Types;
- function FetchBlob(url: string): TJSBlob; async;
- var
- response: TJSResponse;
- begin
- response := await(window.fetch(url));
- if not response.ok then
- raise Exception.create('HTTP error! status: '+str(response.status))
- else
- Result:=await(response.blob());
- end;
- function FetchText(url: string): string; async;
- var
- response: TJSResponse;
- begin
- response := await(window.fetch(url));
- if not response.ok then
- raise Exception.create('HTTP error! status: '+str(response.status))
- else
- Result:=await(response.text());
- end;
- procedure DisplayContent; async;
- var
- coffee, tea, description: TJSPromise;
- objectURL1, objectURL2, descText: String;
- values: TJSValueDynArray;
- image1, image2: TJSHTMLImageElement;
- para: TJSHTMLElement;
- begin
- try
- coffee := FetchBlob('pas2js.png');
- tea := FetchBlob('fpc.png');
- description := FetchText('description.txt');
- values := await(TJSValueDynArray,TJSPromise.all([coffee, tea, description]));
- objectURL1 := TJSURL.createObjectURL(values[0]);
- objectURL2 := TJSURL.createObjectURL(values[1]);
- descText := string(values[2]);
- image1 := TJSHTMLImageElement(document.createElement('img'));
- image2 := TJSHTMLImageElement(document.createElement('img'));
- image1.src := objectURL1;
- image2.src := objectURL2;
- document.body.appendChild(image1);
- document.body.appendChild(image2);
- para := TJSHTMLElement(document.createElement('p'));
- para.textContent := descText;
- document.body.appendChild(para);
- except
- writeln(JSExceptValue);
- end;
- end;
- begin
- DisplayContent;
- end.
|