直接在 on() 回调中使用 off() Firebase?
Use off() directly in on() callback Firebase?
假设我做了一次手术。点赞删除。
var q = ref.child('users').child(targetUserId).child('chat');
q.on('child_added', function(obj) {
obj.ref().remove();
//This works right?
q.off();
});
我可以在 on()
回调中直接执行 off()
吗?我不需要指定 eventType
对吗?
没有别的东西要清理了吧?
From the docs:
同样,如果没有指定事件类型或回调,则引用的所有回调都将被删除。
Can I execute off()
directly in the on()
callback?
是的。
I don't need to specify eventType correct?
正确。正如文档所述,如果 eventType
被省略,引用的所有回调都将被删除。
您也可以像这样链接 .off()
方法,而不是在回调内部调用它:
var q = ref.child('users').child(targetUserId).child('chat');
q.on('child_added', function(obj) {
obj.ref().remove();
}).off();
作为 in the comments, you can also use the .once()
method为了回调只执行一次:
var q = ref.child('users').child(targetUserId).child('chat');
q.once('child_added', function(obj) {
obj.ref().remove();
});
这种方法的好处是您不必担心无意中删除其他附加事件。
假设我做了一次手术。点赞删除。
var q = ref.child('users').child(targetUserId).child('chat');
q.on('child_added', function(obj) {
obj.ref().remove();
//This works right?
q.off();
});
我可以在 on()
回调中直接执行 off()
吗?我不需要指定 eventType
对吗?
没有别的东西要清理了吧?
From the docs:
同样,如果没有指定事件类型或回调,则引用的所有回调都将被删除。
Can I execute
off()
directly in theon()
callback?
是的。
I don't need to specify eventType correct?
正确。正如文档所述,如果 eventType
被省略,引用的所有回调都将被删除。
您也可以像这样链接 .off()
方法,而不是在回调内部调用它:
var q = ref.child('users').child(targetUserId).child('chat');
q.on('child_added', function(obj) {
obj.ref().remove();
}).off();
作为.once()
method为了回调只执行一次:
var q = ref.child('users').child(targetUserId).child('chat');
q.once('child_added', function(obj) {
obj.ref().remove();
});
这种方法的好处是您不必担心无意中删除其他附加事件。