热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

直接在on()回调Firebase中使用off()?

如何解决《直接在on()回调Firebase中使用off()?》经验,为你挑选了1个好方法。

假设我有一个完成的操作.像删除一样.

var q = ref.child('users').child(targetUserId).child('chat');
q.on('child_added', function(obj) {
  obj.ref().remove();

  //This works right?
  q.off();
}); 

我可以off()直接在on()回调中执行吗?我不需要指定eventType正确的?

还有什么不能清理的吗?

从文档:
同样,如果未指定eventType或回调,则将删除引用的所有回调.



1> Josh Crozier..:

我可以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();

正如Frank van Puffelen在评论中建议的那样,您也可以使用该.once()方法,以使回调仅执行一次:

var q = ref.child('users').child(targetUserId).child('chat');
q.once('child_added', function(obj) {
  obj.ref().remove();
});

这种方法的好处是您不必担心会无意中删除其他附加事件。


我不赞成您可以将它们链接起来。[.on()返回回调函数,而不是`this`上下文引用](https://www.firebase.com/docs/web/api/query/on.html)
推荐阅读
author-avatar
平凡淘你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有