fetch的介绍与运用

 介绍

        Fetch API 提供了一个获取资源的接口(包括跨域请求),用于取代传统的xhr(XMLHttpRequest)的,在 JavaScript 脚本里面发出 HTTP 请求。

        基于promise的设计,返回的是Promise对象

fetch('http://example.com/movies.json')
  .then(response => response.json())
  .then(data => console.log(data));

这是一个基础的fetch接口使用方式,fetch注重分离式的模式,就是将一个复杂的事情分成多个步骤;如上代码,fetch发起请求,成功后会返回一个 Stream 对象(表示服务器访问成功),这个对象使用json()方法反序列化成对象并包装成一个pendding状态的promise,再处理这个promise,获取数据(表示数据能够访问)

response.text():得到文本字符串,用于获取文本数据,比如 HTML 文件。
response.json():得到 JSON 对象。
response.blob():得到二进制 Blob 对象,例如读取图片文件,显示在网页上。
response.formData():得到 FormData 表单对象,主要用在 Service Worker 里面,拦截用户提交的表单,修改某些数据以后,再提交给服务器。
response.arrayBuffer():得到二进制 ArrayBuffer 对象,主要用于获取流媒体文件。

 使用

export function get(url, params) {
    if (params) {
        let paramsArray = [];
        //拼接参数  
        Object.keys(params).forEach(key => paramsArray.push(key + '=' + params[key]))
        if (url.search(/\?/) === -1) {
            url += '?' + paramsArray.join('&')
        } else {
            url += '&' + paramsArray.join('&')
        }
    }
    return new Promise((resolve, reject) => {
        fetch(url, {
                method: 'GET',
            })
            .then((response) => response.json())
            .then((data) => {
                resolve(data)
            }, err => {
                reject(err)
            })
            .catch((error) => {
                console.log(error)
            })
    })
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值