国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

angular.js - angular中怎麼根據(jù)時間來判斷重新調(diào)接口還是調(diào)localstorage的內(nèi)容
phpcn_u1582
phpcn_u1582 2017-05-15 17:10:16
0
1
642

我希望能做到通過時間去判斷數(shù)據(jù)是重新通過接口去取還是直接拿localstorage裡面的數(shù)據(jù),但是接口返回的是一個promise對象,用if else判斷是會報promise.then is not a function。

phpcn_u1582
phpcn_u1582

全部回覆(1)
洪濤

頁面載入後取一個時間點,點選刷新的時候再取時間。看時間差來判斷要取local還是接口,兩者的邏輯不同,所以要用不同的方式來呼叫。最後賦值給頁面儲存資料的變量,這樣就不會出現(xiàn)你說的錯誤了。
補充:
例如你頁面資料是用$scope.data儲存的。
載入頁面的時候去時間點,存在start變數(shù)中。
當(dāng)點選刷新時,取結(jié)束時間存end,直接取時間差也可以。如果時間差大於等於一分鐘,從介面取資料。否則從localStorage取資料。
介面取資料回來的是promise,而localStorage回來的是字串。

if(end-start>= 1){ //從接口取數(shù)據(jù),加入接口名字為DataService
    DataService().then(function(response){
        console.log(response); //這里默認(rèn)接口回來的數(shù)據(jù)和你頁面數(shù)據(jù)是一樣的,有可能頁面數(shù)據(jù)是接口數(shù)據(jù)的一部分,需要用點進行調(diào)用,例如 response.data
        $scope.data = response;
    })
}else{
    //從localStorage取數(shù)據(jù),這里假定你存入的數(shù)據(jù)名為data
    //取回來的是字符串,需要轉(zhuǎn)成json。注意,存入的時候也要是字符串,需要用JSON.stringify()轉(zhuǎn)換
    $scope.data = JSON.parse(localStorage.getItem("data"));
}

程式碼只是顯示邏輯,不能直接運作。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板