FE-Interview icon indicating copy to clipboard operation
FE-Interview copied to clipboard

简单封装一个异步 fecth,使用 async await 的方式来使用

Open lgwebdream opened this issue 5 years ago • 3 comments

lgwebdream avatar Jul 06 '20 15:07 lgwebdream

扫描下方二维码,获取答案以及详细解析,同时可解锁800+道前端面试题。

lgwebdream avatar Jul 06 '20 15:07 lgwebdream

~(async () => {
    class HttpRequestUtil {
        async get(url) {
            const res = await fetch(url);
            const data = await res.json();
            return data;
        }
        async post(url, data) {
            const res = await fetch(url, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify(data)
            });
            const result = await res.json();
            return result;
        }
        async put(url, data) {
            const res = await fetch(url, {
                method: 'PUT',
                headers: {
                    'Content-Type': 'application/json'
                },
                data: JSON.stringify(data)
            });
            const result = await res.json();
            return result;
        }
        async delete(url, data) {
            const res = await fetch(url, {
                method: 'DELETE',
                headers: {
                    'Content-Type': 'application/json'
                },
                data: JSON.stringify(data)
            });
            const result = await res.json();
            return result;
        }
    }
    const httpRequestUtil = new HttpRequestUtil();
    const res = await httpRequestUtil.get('http://golderbrother.cn/');
    console.log(res);
})();

GolderBrother avatar Sep 06 '20 10:09 GolderBrother

class getdataa {
      async get(url) {
         let re = await fetch(url)
         let dataa = await re.json()
         return dataa
      }

      async post(url,data) {
         let re=await fetch(url,{
            method:'POST',
            headers:{
               'Content-Type':'application/json'
            },
            body:JSON.stringify(data)
         })
         let dataa = await re.json()
         return dataa
      }

      async delete(url,data) {
         let res = await fetch(url,{
            method:'DELETE',
            headers:{
               'Content-Type':'application/json'
            },
            body: JSON.stringify(data)
         })
         let dataa = await res.json()
         return dataa
      }

      async put(url,dataa) {
         let res = await fetch(url,{
            method:'PUT',
            headers:{
               'Content-Type':'application/json'
            },
            body:JSON.stringify(dataa)
         })
         let dat = await res.json()
         return dat
      }
     }

     let x = new getdataa()
     let func = async ()=>{
      try {
         let res = await x.get('https://api.github.com/users/octocat')
         console.log(res)
      } catch(err) {
         console.log('err')
      }  

     }
     func()

Alicca-miao avatar Sep 29 '24 07:09 Alicca-miao