微信小程序之踩坑之旅一,wx.request 和 wx.uploadFile

微信小程序公測也有段時間了,可是裏面的坑踩了一個又一個,心也是夠累的。本文說說關於 wx.request 和 wx.uploadFile 對請求響應的不一樣表現。(注:該坑直到文章發佈的那天還存在)html

本文 Demo 的倉庫。git

wx.request

使用 wx.request 發出請求,在對接口的響應作處理時,官方提供了三個回調函數,分別是 success,fail,complete,看了官方文檔,其實也很清晰何時用什麼回調,在這裏也很少贅述了。github

wx.uploadFile

使用 wx.uploadFile 能夠上傳文件,並能夠攜帶一些額外的信息,在對接口的響應作處理時,和 wx.request 同樣,也提供了一樣的三個回調函數,在官方文檔中,其描述幾乎是同樣的(除了success)。小程序

在對這兩個接口有了必定的瞭解後,說說這兩個接口對請求的相應的不一樣表現。微信小程序

先上張圖體會下:
demoapi

wx.request 發出請求後,不管請求接口返回的 HTTP 狀態碼(200也好,500也好)是什麼,都會進入 success 回調,和通常認爲的 500 會進入 fail 回調不同。
(吐槽:對,接口是微信開發團隊定的,按照這個規律,咱們只能遵循,而後我就遵循這一規律繼續寫)微信

wx.uploadFile 發出請求後,若是請求接口返回的 HTTP 狀態碼爲200時,會進入 success 回調,而返回其餘狀態碼(如400、40五、500等)時,會進入 fail 回調(黑人問號.jpg)。微信開發

雖然這不是啥大問題,但在微信小程序的開發過程當中,上面提到的問題仍是會讓人一會兒摸不着路子。我的以爲接口保持一致性仍是很重要的,不過遊戲的制定者不是咱們,只能但願越改越好吧。app

感受不坑,對吧?下面其實才是坑人的地方。函數

本文得出結果是在微信開發者工具上運行的結果,跟實際手機預覽得出的結果又有出入(微信你搞什麼鬼!!!),若是在手機上預覽(我是在iOS上預覽的)的話會變成—— wx.request 和 wx.uploadFile 的回調被調用的狀況是同樣的。

相關文章
相關標籤/搜索