我的任務是爲HTML5 WebSocket服務器創建一個AS3客戶端。ASyncToken有什麼意義?
我最初的想法是使用AS3中的一些現有類創建這個服務,即試圖模擬RemoteObject,但看了看它,我無法真正看到ASyncToken的重點!
我知道令牌被用作服務器調用和它的響應之間的某種形式的引用,但我無法看到它成爲唯一標識符的位置/方式。
就拿這一小段代碼:
var token:AsyncToken = myService.myCall(params);
news.addResponder(new Responder(onResult, onFault));
function onResult(event:ResultEvent) {
// do stuff
}
function onFault(event:FaultEvent) {
// do stuff
}
顯然令牌有自己的應答,並且該服務可以保持令牌的消息的字典,但如果我是叫myService.myCall兩次,在做出任何迴應之前,服務是否知道哪個令牌與響應關聯?服務是否會創建一個唯一的標識符將響應與令牌關聯起來,還是會在這種情況下失敗?
如果它確實在內部存儲了自己的唯一標識符,那麼它將如何完全跳過令牌並將響應者傳遞給調用參數?例如。
myResponder = new Responder(onResult, onFault);
myService.myCall(myIResponder, <additional params>);
function onResult(event:ResultEvent) {
// do stuff
}
function onFault(event:FaultEvent) {
// do stuff
}
只看了一下我自己的示例代碼,可以看到令牌沒有存儲在服務中,所以令牌是對調用的引用而不是其他方式。儘管如此,我仍然沒有看到它在兩個調用相同方法的區別之處。 – adamk 2011-01-11 22:02:49
Docs提到了這個問題:「這個類提供了一個設置異步RPC操作的額外或令牌級數據的地方,它還允許IResponder成爲附加在一個單獨的調用中,AsyncToken可以在token屬性的ResultEvent和FaultEvent中引用。「 – Heikki 2011-01-11 22:36:32