fetch发送网络请求
-
fetch文档:https://github.github.io/fetch/
axios和jquery都是基于原生的XMLHttpRequest对象封装的,
除了这个原生对象以外,还有fetch函数也可以请求网络数据
search = async () => { // 获取用户输入 const { value: keyWord } = this.keyWordElement; // 消息发布 // 发送请求前通知List更新状态 PubSub.publish('updateListState', { isFirst: false, isLoading: true, err: '' }) // #region---使用axios发送请求 // 获取网络请求 // axios.get(`https://api.github.com/search/users?q=${keyWord}`).then( // res => { // PubSub.publish('updateListState', { users: res.data.items, isLoading: false }) // }, // err => { // // 请求失败后通知List更新错误信息状态 // PubSub.publish('updateListState', { err: err.message, isLoading: false }) // } // ) // //#endregion // 使用fetch发送请求(未优化) // fetch是关注分离的的,先关注连接状态,再拿到结果 fetch(`https://api.github.com/search/users?q=${keyWord}`, {}).then( res => { console.log(res, '联系服务器成功了'); return res.json(); // res.json方法返回一个promise对象 }, // err => { // console.log(err, '联系服务器失败了'); // // return new Promise(() => {}); // 返回一个新的promise对象,就不会继续往下走了(不会进入下面的.then) // return Promise.reject(err); // 把错误信息传到下面的.then的失败回调 // } ).then( res => { console.log(res, '拿到数据'); }, err => { console.log(err, '拿到数据失败'); } ) // 使用fetch发送请求(未优化) try { const res = await fetch(`https://api.github.com/search/users?q=${keyWord}`); const result = await res.json(); console.log(result, 'result'); PubSub.publish('updateListState', { users: result.items, isLoading: false }); } catch (error) { console.log(error, '请求出错'); PubSub.publish('updateListState', { err: error.message, isLoading: false }) } }
-
分类:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2019-10-05 小程序demo项目实践