在使用 Sqlite 时,如果您同时尝试执行函数,则会引发错误。我只是想编写一个函数来检查它是否正在执行,如果是,则再等待 10 毫秒并重试。如果不需要将任何参数传递给该函数,则此函数可以正常工作,但是我不知道如何将变量传回正在执行的函数中。
我的意图是:
timer.addEventListener(TimerEvent.TIMER, saveChat(username, chatBoxText));
但是它只允许我做:
timer.addEventListener(TimerEvent.TIMER, saveChat);
我遇到了这个编译错误:
1067: 将类型为 void 的值隐式强制转换为不相关的类型 Function
我该如何使代码能通过这个限制?
以下是我的代码:
public function saveChat(username:String, chatBoxText:String, e:TimerEvent=null):void
{
var timer:Timer = new Timer(10, 1);
timer.addEventListener(TimerEvent.TIMER, saveChat);
if(!saveChatSql.executing)
{
saveChatSql.text = "UPDATE active_chats SET convo = '"+chatBoxText+"' WHERE username = '"+username+"';";
saveChatSql.execute();
}
else timer.start();
}