1. function myFetch(timeout) {
    2. // 通过setTimeount模拟封装fetch
    3. const fetch = () => {
    4. return new Promise((resolve, reject) => {
    5. setTimeout(() => {
    6. resolve("ok");
    7. }, 3 * 1000);
    8. });
    9. };
    10. return new Promise((resolve, reject) => {
    11. // 模拟fetch,运行成功则resolve
    12. fetch().then(() => {
    13. resolve("ok");
    14. });
    15. // 模拟超时,超时则reject
    16. setTimeout(() => {
    17. reject("timeout");
    18. }, timeout * 1000);
    19. });
    20. }
    21. myFetch(2)
    22. .then((v) => {
    23. console.log(v);
    24. })
    25. .catch((e) => {
    26. console.log(e);
    27. });