Dan*_*nze 6 javascript firebase
假设我有一个完成的操作.像删除一样.
var q = ref.child('users').child(targetUserId).child('chat');
q.on('child_added', function(obj) {
obj.ref().remove();
//This works right?
q.off();
});
Run Code Online (Sandbox Code Playgroud)
我可以off()直接在on()回调中执行吗?我不需要指定eventType正确的?
还有什么不能清理的吗?
从文档:
同样,如果未指定eventType或回调,则将删除引用的所有回调.
我可以
off()直接在on()回调中执行吗?
是。
我不需要指定eventType正确吗?
正确。docs指出,如果eventType省略,则该参考的所有回调将被删除。
您也可以.off()像这样链接方法,而不是在回调内部调用它:
var q = ref.child('users').child(targetUserId).child('chat');
q.on('child_added', function(obj) {
obj.ref().remove();
}).off();
Run Code Online (Sandbox Code Playgroud)
正如Frank van Puffelen在评论中建议的那样,您也可以使用该.once()方法,以使回调仅执行一次:
var q = ref.child('users').child(targetUserId).child('chat');
q.once('child_added', function(obj) {
obj.ref().remove();
});
Run Code Online (Sandbox Code Playgroud)
这种方法的好处是您不必担心会无意中删除其他附加事件。
| 归档时间: |
|
| 查看次数: |
7279 次 |
| 最近记录: |