wx.request的fail回調函數執行兩次的問題

問題

在使用wx.request方法向後臺請求數據時,爲了用戶體驗,當後臺出現異常,無法請求到數據時,此時可以考慮從緩存中取出以往的數據,但是我在測試緩存的方法時,出現了wx.request的fail回調函數執行了兩次的問題。

測試代碼

做個測試代碼:

//js文件
Page({
    onLoad:function()
    {
        wx.request({
            url:'http://wxcms.com/getList',
            header:{
                'content-type':'application/json'
            },
            success:function()
            {
                console.log('This is success function')
            },
            fail:function()
            {
                console.log('This is fail function')
            }
        })
    }
})

此時服務器是沒有啓動的,理想執行效果應該只出現一次 ‘This is fail function’ ,但實際上去出現了兩次,結果如圖:
這裏寫圖片描述

原因

後面查找原因發現是因爲app.json在配置時候,配置了request的超時時間,如圖:
這裏寫圖片描述

也就是說,request在向後臺請求數據時,無法鏈接後臺,此時fail回調方法執行一次,在request超時時,fail回調方法再次執行一次

驗證

在去掉request的超時時間的配置後,再次測試,fail回調函數只執行一次
這裏寫圖片描述

總結

在實際運用中,爲了更好的用戶體驗,一般不需要額外配置request的請求超時時間,用默認超時時間就好。如果有需求要重新配置超時時間,同時又需要用到fail的回調函數,那麼需要處理下fail的回調函數,此時就要看具體情況了。

發佈了22 篇原創文章 · 獲贊 6 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章