Promise和fetch封装API请求的区别

比如我需要封装这样一个获取用户ID的函数

 getUserIds().then((ids) => {console.log(ids)})

// promise
const getUserIds = () => {
   return new Promise(resolve){
   // 模拟异步请求
   setTimeout(() => { resolve([1,2,3]) })
}
}
// fetch
const getUserIds = () {
  return fetch(URL, CONFIG)
}

用promise或者fetch来封装接口函数有什么区别吗?

阅读 4.5k
3 个回答

没什么区别,都是返回promise,一个是浏览器封装好的,一个是需要自己去实现的

楼上说的很多,没有区别。

不过这个问题本身就有问题。Promise 和 fetch 没有关系,不能放到一起比较。fetch 是原始的 XMLHttpRequest 对象的替代品,它实现了 Promise 规范,返回 Promise 实例;而 Promise 是为解决异步回调问题而摸索出的一套方案。

Fetch是基于标准 Promise 实现的,支持 async/await
同构也方便,使用 isomorphic-fetch

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题