0
我正在使用RpcRequestBuilder攔截並對我在應用程序上進行的每個RPC進行一些常規修改。 有沒有辦法,如果我在我的RpcRequestBuilder上遇到throwable,並且我知道我應該再次嘗試執行RPC,請重新啓動相同的RPC?這在理論上是可能的,我只是不知道再次啓動RPC請求的內容。 (是的,我會小心不要輸入一個循環:))失敗後重新啓動GWT-RPC請求
我正在使用RpcRequestBuilder攔截並對我在應用程序上進行的每個RPC進行一些常規修改。 有沒有辦法,如果我在我的RpcRequestBuilder上遇到throwable,並且我知道我應該再次嘗試執行RPC,請重新啓動相同的RPC?這在理論上是可能的,我只是不知道再次啓動RPC請求的內容。 (是的,我會小心不要輸入一個循環:))失敗後重新啓動GWT-RPC請求
你試過簡單地撥send()
在RequestBuilder
?
AFAICT,唯一的問題是,如果你有一個Request
(或RequestBuilder
)返回類型異步方法:返回Request
將是第一次請求的一個,第二個請求將被忽略,因而couldn」不會被呼叫核心中止。
要允許這種情況下,你必須從你的RpcRequestBuilder
的create()
方法返回的RequestBuilder
一個子類,覆蓋send()
返回一個特殊Request
子類,委託給真正Request
(並允許它是交換,所以你可以設置一個相應的重試)。
我其實沒有這樣的異步servicce,但自第一個rpc失敗(在AsyncCallback上執行onFailure(Throwable)),那真的不應該是個問題吧?作爲第二個請求,會觸發onSuccess和預期的結果。 我可以給你一個例子: 可以說我使用某種會話管理,並驗證每個rpc會話的有效性。現在,如果會話被檢測爲「超時」,則會顯示登錄框,並且在成功登錄後,我想重複第一個rpc,即發起超時/登錄屏幕的rpc。 這是可以使用send()嗎? –