我目前正在對API進行一些更改,這裏的問題是我們要求來自另一個服務器的數據,但是要求服務器處理我們的請求並且爲了安全起見,我們首先要求他們提供AccessToken,如果令牌有效並且仍然活着(那些令牌持續2秒,我不知道如何正確使用英文,對不起),那麼一切都很好,如果令牌不好,我們不能要求他們提供任何東西。什麼是間隔提出請求的更優雅和有效的方式?
這裏的情況是,現在API發出請求而不先詢問令牌,並且如果當前令牌(因爲當API啓動時它要求令牌)無效,那麼它會捕獲錯誤並詢問爲一個新的令牌,然後再次提出請求。
我不喜歡它。我覺得如果我每兩秒鐘要求一個新的令牌而不是捕獲一個錯誤,它會更簡單和更清晰。
我怎樣才能做到這一點,但在一個優雅和有效的方式?現在我能想到的最基本的形式是每兩秒鐘用一個定時器將承諾放在自執行函數中。但我認爲這不是最好的辦法。有什麼建議麼?
繼續每兩秒申請一個新令牌並不是一個好主意。它會給服務器帶來不必要的額外負擔,特別是如果大部分令牌都未使用。你應該創建一個變量:'var validToken'並且在接收到一個有效的標記後,將它設置爲'validToken = true'做一個'setTimeout'兩秒鐘並且將它設置爲'validToken = false'。如果'validToken == false',則在進行API調用之前要求新的令牌。 – Hoyen
是的,我也會問這個,但我不得不出去吃午飯。 2秒到期時間是否真的有必要?例如,也許它應該是1或2分鐘,並且只有當您有待發送的請求時才應該檢索新的令牌。 – DragShot
截止時間是由製作該API的人設定的,這不取決於我。 –