我的应用程序做什么:
- 异步传输信息(这是一个彗星风格的应用程序,我使用 Faye)。
- 附加到旋转木马。
- 显示 7 秒。
- 重复步骤(2)。
我的问题是: 如果我在到达的那一刻将数据附加到传送带上,它将覆盖当前显示(忽略 7 秒)。
我在做什么: 试图在coffeescript中建立一个“等待线”,这样当新数据到达时它就会排队,7秒后,线上的第一个元素弹出并附加。我尝试使用 setTimeout 但它不起作用,因为它是异步的。
一个例子:
line = []
# the second parameter is the callback function when a new data arrives
faye.subscribe 'my/channel/', (data) ->
appendEl = (el) ->
$('.my-container').append(el)
line.slice(0,1)
line.push(data)
# I think this could work if timeout could block, like sleep()
# So when new data arrives it will get in line
my_time = setTimeout(appendData(data), 7000)
if line.empty?
clearTimeout(my_time)
我不知道这是否是最好的方法,这是我第一个流式传输实时数据的应用程序。