在Yuka.js库的MessageDispatcher中,dispatchDelayedMessages函数用于在指定的时间间隔内调度所有已过期的消息。该方法执行多轮轮训,直到所有已过期的消息都被处理完毕。
dispatchDelayedMessages( timeDelta );
timeDelta
:类型为数字,代表从上一次调用该函数到当前时刻的时间间隔(以毫秒为单位)。const dispatcher = new MessageDispatcher();
dispatcher.dispatchMessage( 1000, null, "Hello, World!" );
dispatcher.dispatchMessage( 2000, null, "Hi there!" );
dispatchDelayedMessages( 1500 ); // 1500毫秒后调用该函数
//所有已过期的消息都将被处理,并输出内容
dispatchDelayedMessages函数的执行流程如下:
currentTime
变量中。currentTime
小于lastDispatchTime
,则将lastDispatchTime
更新为currentTime
以避免无效轮询。elapsedTime
,表示从上一次调用该函数到当前时刻的时间间隔。dispatchTime
,则遍历消息队列并处理所有已过期的消息。dispatchTime
为下一条最近消息的到期时间。