cursor.addListener(event, listener)
cursor.on(event, listener)
cursor.once(event, listener)
cursor.removeListener(event, listener)
cursor.removeAllListeners([event])
cursor.setMaxListeners(n)
cursor.listeners(event)
cursor.emit(event, [arg1], [arg2], [...])
Cursors and feeds implement the same interface as Node’s EventEmitter.
data
and error
.EventEmitter
interface, the other RethinkDB cursor commands like next
, toArray
, and each
will not be available anymore.EventEmitter
method, the cursor or feed will emit data just after the I/O events callbacks and before setTimeout
and setInterval
callbacks.Example: Broadcast all messages with socket.io.
r.table("messages").orderBy({index: "date"}).run(conn, function(err, cursor) {
if (err) {
// Handle error
return
}
cursor.on("error", function(error) {
// Handle error
})
cursor.on("data", function(message) {
socket.broadcast.emit("message", message)
})
});
This query can be rewritten with the each
command:
r.table("messages").orderBy({index: "date"}).run(conn, function(err, cursor) {
if (err) {
// Handle error
return
}
cursor.each(function(error, message) {
if(error) {
// Handle error
}
socket.broadcast.emit("message", message)
})
});
Example: Broadcast all the messages inserted.
r.table("messages").changes().filter({old_val: null}).run(conn, function(err, feed) {
if (err) {
// Handle error
return
}
feed.on("error", function(error) {
// Handle error
})
feed.on("data", function(newMessage) {
socket.broadcast.emit("message", newMessage)
})
});
Couldn't find what you were looking for?
Contribute: edit this page or open an issue