鍍金池/ 問答/HTML/ Promise和fetch封裝API請求的區(qū)別

Promise和fetch封裝API請求的區(qū)別

比如我需要封裝這樣一個獲取用戶ID的函數(shù)

 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來封裝接口函數(shù)有什么區(qū)別嗎?

回答
編輯回答
喵小咪

Fetch是基于標準 Promise 實現(xiàn)的,支持 async/await
同構(gòu)也方便,使用 isomorphic-fetch

2017年3月11日 08:02
編輯回答
莓森

樓上說的很多,沒有區(qū)別。

不過這個問題本身就有問題。Promise 和 fetch 沒有關(guān)系,不能放到一起比較。fetch 是原始的 XMLHttpRequest 對象的替代品,它實現(xiàn)了 Promise 規(guī)范,返回 Promise 實例;而 Promise 是為解決異步回調(diào)問題而摸索出的一套方案。

2017年4月7日 06:07
編輯回答
故人嘆

沒什么區(qū)別,都是返回promise,一個是瀏覽器封裝好的,一個是需要自己去實現(xiàn)的

2017年1月8日 11:56