使用Parsley,我有一个通过命令(getRssFeed=‘list’)公共函数选择器( msg:RssEvent )访问的服务:AsyncToken{ return service.list() as AsyncToken;}
当我指向“真正的”RssService时,一切都像预期的那样工作。我的问题是当我指向“模拟”RssService时。我不知道如何用一些虚拟的数据返回来伪造一个AsyncToken ...有人知道怎么做吗?
发布于 2010-05-08 06:55:57
决议..........;)
public function list():AsyncToken
var rssFeed:Array = [rss,rss,rss];
var token:AsyncToken = createToken(rssFeed);
token.addResponder(new AsyncResponder(resultHandler, null));
return token;
}
private function resultHandler(event:ResultEvent, token:AsyncToken = null):void
{
event.token.dispatchEvent(event);
}
protected function createToken(result:Object):AsyncToken
{
var token:AsyncToken = new AsyncToken(null);
setTimeout(applyResult, Math.random()*500, token, result);
return token;
}
private function applyResult(token:AsyncToken, result:Object):void
{
mx_internal:token.setResult(result);
var event:ResultEvent = new ResultEvent(ResultEvent.RESULT, false, true, result, token);
mx_internal:token.applyResult(event);
trace(token);
}发布于 2012-10-09 23:07:38
使用Parsley 3.0,您有一个更好的spicefactory异步命令选项:
public class MockCommand
{
public var callback:Function;
public function execute():void
{
var timer:Timer = new Timer(500, 1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, timer_completeHandler);
timer.start();
}
private function timer_completeHandler(event:TimerEvent):void
{
callback(mockResultData);
}
}不需要mx_internal导入。
发布于 2010-12-22 00:45:19
别忘了添加:
use namespace mx_internal;
否则,您将得到此异常。
故障异常,information=TypeError:错误#1006: setResult不是函数。
https://stackoverflow.com/questions/2787778
复制相似问题