js.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // const startUrl = "http://swapi.dev/api/";
  2. // const url = (str) => typeof str === "string" && str.startsWith(startUrl);
  3. // table = (el, obj) => {
  4. // for (var [key, value] of Object.entries(obj)) {
  5. // const div = document.createElement("div");
  6. // div.style.border = "1px solid black";
  7. // div.style.margin = "5px 5px";
  8. // div.style.padding = "5px";
  9. // if (url(value)) {
  10. // value = [value];
  11. // }
  12. // if (value instanceof Array) {
  13. // div.innerHTML = `<b>${key}</b>: `;
  14. // for (var item of value)
  15. // if (url(item)) {
  16. // const button = document.createElement("button");
  17. // button.innerText = item.slice(startUrl.length);
  18. // div.appendChild(button);
  19. // button.onclick = () => {
  20. // const div1 = document.createElement("div");
  21. // div1.style.border = "2px solid green";
  22. // div1.style.margin = "5px 5px";
  23. // div.appendChild(div1);
  24. // fetch("https://swapi.dev/api/" + button.innerText)
  25. // .then((res) => res.json())
  26. // .then((luke) => table(div1, luke));
  27. // };
  28. // }
  29. // } else {
  30. // div.innerHTML = `<b>${key}</b>: ${value}`;
  31. // }
  32. // el.appendChild(div);
  33. // }
  34. // };
  35. // fetch("https://swapi.dev/api/people/1/")
  36. // .then((res) => res.json())
  37. // .then((luke) => table(films, luke));
  38. // // myfetch
  39. // function myfetch(url) {
  40. // return new Promise((resolve, reject) => {
  41. // const xhr = new XMLHttpRequest();
  42. // xhr.open("GET", url, true);
  43. // xhr.onload = () => {
  44. // xhr.status != 200
  45. // ? reject(xhr.response)
  46. // : resolve(JSON.parse(xhr.responseText));
  47. // };
  48. // xhr.onerror = () => reject(xhr.statusText);
  49. // xhr.send();
  50. // });
  51. // }
  52. // myfetch("https://swapi.dev/api/people/1/").then((luke) => console.log(luke));
  53. // // race
  54. // const API1 = new Promise((resolve, reject) =>
  55. // myfetch("https://swapi.dev/api/people/1/").then(() => resolve("API1"))
  56. // );
  57. // const API2 = (ms) => new Promise((ok) => setTimeout(() => ok("API2"), ms));
  58. // Promise.race([API1, API2(115)]).then((value) => console.log(value));