2014-04-22 34 views
0

我正在REST調用Web服務託管在不同的服務器上形成我的GWT客戶端的JavaScript,其響應需要被捕獲並呈現在用戶界面。我通過resty-gwt來做到這一點。但是我無法在javascript中調用rest方法的時候捕獲這個響應。另外,我要確保,如果我調用來自其他(這反過來又調用REST調用)後的JavaScript一個兩個電話時,才完成第一個呼叫第二呼叫。有沒有辦法達到相同的目的?如何使用GWT創建通過JavaScript進行休眠的同步調用?

回答

0

我覺得有你的問題2個不同的問題:無法捕獲響應

B)創建調用序列

A)

對於A)你應該給我們更多的信息,代碼片段。您的問題與CORS有關嗎?

對於B)這是我的建議

如果使用的是2個異步調用沒有辦法gaurantee一個將在第二個之前返回。儘管如此,你可以實現不同的某種同步。

我看到2個選項

1)等待第一個調用返回啓動第二個。它(取決於你的邏輯,也許也在裏面onFailure處)第一個呼叫的方式發送第二調用的onSuccess內。

此選項在性能方面最優的,因爲你可能有發送第二請求之前等待不必要的時間。這取決於你是否需要一些信息來自發送第二個請求的第一個請求的答案。

2)獨立發送兩個​​通話。然後,在每次調用的onSuccess方法內保存一個布爾值(ok1和ok2)。裏面的2個的onSuccess方法調用相同的方法例如:afterBothSuccess()

此方法內部檢查OK1的價值和OK2

if (ok1 && ok2) 
//here you are guaranteed that both your calls have returned with success 
+0

的問題是有關CORS的請求被迴應smoothly.I要離開它給用戶做下一次調用,但是阻止第二次調用,除非第一個請求被滿足。 –

+0

對不起,我不明白您的評論 –

+0

我的實際問題是通過JSNI方法,現在用交替的方式解決:)感謝您的建議BTW捕捉成功和失敗的反應! –