1

我正在开发一个 Derby 应用程序,但似乎无法弄清楚如何在页面休假时取消订阅。我一般都知道如何取消订阅,但挂起离开页面似乎是个问题。

我现有的代码看起来非常类似于:

get "/somePath", (page, model) ->
    someQueryHere = model.query("somecollection").someMotif()

    model.subscribe someQueryHere, (err, results) ->
        if err?
            ...
            return

        ...

    do page.render
4

1 回答 1

1

你所说的“页面离开”到底是什么意思?当整个页面重新加载发生时,不需要取消订阅,socket.io 连接无论如何都会被终止。

另一方面,如果您想在客户端页面渲染上取消订阅模型,您可以尝试使用以下render事件之一:

app.on 'pre:render', ->
  model.unsubscribe someQueryHere

请注意,渲染事件发生在路由执行之后,因此您应该注意不要取消订阅您刚刚订阅的查询/路径。

无论如何,更完整的示例将有助于更好地理解您的问题。

关于您的示例的另一个注意事项:page.render()应该在subscribe回调中调用。另外,为什么要使用do page.render而不是像这样简单地调用它:page.render()

于 2012-10-09T09:21:46.463 回答