我正在研究Derby应用程序,似乎无法弄清楚如何取消订阅页面休假。我知道如何取消订阅一般,但挂钩页面似乎是问题。
我现有的代码看起来非常类似于:
get "/somePath", (page, model) ->
someQueryHere = model.query("somecollection").someMotif()
model.subscribe someQueryHere, (err, results) ->
if err?
...
return
...
do page.render
答案 0 :(得分:1)
你在'页面休假'上的意思是什么?发生整页重新加载时无需取消订阅,无论如何都会终止socket.io连接。
另一方面,如果您想取消订阅客户端页面渲染中的模型,可以尝试使用其中一个render
事件:
app.on 'pre:render', ->
model.unsubscribe someQueryHere
请注意,渲染事件在路由执行后发生,因此您应该注意不要取消订阅您刚刚订阅的查询/路径。
无论如何,更完整的例子有助于更好地理解你的问题。
关于您的示例的另一个注释:page.render()
可能应该在subscribe
回调中调用。另外,为什么使用do page.render
而不是简单地调用它:page.render()
?