added example
This commit is contained in:
1 parent
ac976da7fe
commit
cf4aa9c33a
1 file changed
+57
@@ -0,0 +1,57 @@
|
||||
import { delay } from "https://deno.land/std@0.202.0/async/delay.ts";
|
||||
|
||||
|
||||
async function downloadFilesWithDelay(urls: string[]): Promise<string[]>{
|
||||
let ret: string[] = [];
|
||||
for(const url of urls){
|
||||
await delay(1000);
|
||||
const resp = await fetch(url);
|
||||
ret.push(await resp.text());
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
async function downloadFile(): Promise<void> {
|
||||
const url = "https://didier-ahuntsic.gitlab.io/cours-420-317-ah/data/grades.json";
|
||||
const resp = await fetch(url);
|
||||
const payload = await resp.json();
|
||||
let ser = JSON.stringify(payload);
|
||||
await Deno.writeTextFile("grades.json", ser);
|
||||
}
|
||||
|
||||
type Index = {links: string[]};
|
||||
|
||||
async function getIndex(url: string): Promise<Index>{
|
||||
const resp = await fetch(url);
|
||||
return (await resp.json()) as Index;
|
||||
}
|
||||
|
||||
async function getEachUrl(links: string[]): Promise<string> {
|
||||
const ret : string[] = [];
|
||||
for(const url of links){
|
||||
const resp = await fetch(url);
|
||||
ret.push(await resp.json());
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
async function downloadSubUrls(url: string): Promise<string>{
|
||||
const index = await getIndex(url);
|
||||
return await getEachUrl(index.links);
|
||||
}
|
||||
|
||||
// const url = "https://didier-ahuntsic.gitlab.io/cours-420-317-ah/data/exo-index.json";
|
||||
// const ret = await downloadSubUrls(url);
|
||||
// console.log(ret.length)
|
||||
|
||||
async function download2InParallel():Promise<string[]>{
|
||||
const url1 = "http://httpbin.org/delay/3";
|
||||
const url2 = "http://httpbin.org/delay/3";
|
||||
const pResp1 = fetch(url1);
|
||||
const pResp2 = fetch(url2);
|
||||
await Promise.all([pResp1, pResp2]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user