小程序云开发 Collection.watch 监听器构建和销毁
小程序云开发 Collection.watch 监听器构建和销毁
构建和销毁代码示例
// release/chatroom/index.js
const db = wx.cloud.database()
var musicwatcher = null
Page({
onLoad: function (options) {
this.musicwatcher = db.collection('MUSIC_LOG').where({
playstatus:1
}).watch({
onChange: function (snapshot) {
//只打印变动的信息
// console.log(snapshot.docChanges)
if (snapshot.docChanges.length != 0) {
// console.log(snapshot.docChanges)
that.setData({
songInfo: snapshot.docChanges[0].doc
})
}
},
onError: function (err) {
console.error('the watch closed because of error', err)
}
})
},
onUnload: function () {
console.log('隐藏页面')
//监听器销毁
this.musicwatcher.close()
}
})
接口watch介绍
监听集合中符合查询条件的数据的更新事件。使用 watch 时,支持 where, orderBy, limit,不支持 field。
参数
options: Object
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| onChange | function | 是 | 成功回调,回调传入的参数 snapshot 是变更快照,snapshot 定义见下方 | |
| onError | function | 是 | 失败回调 |
返回值
Object
Watcher 对象
| 属性 | 类型 | 说明 |
|---|---|---|
| close | function | 关闭监听,无需参数,返回 Promise,会在关闭完成时 resolve |
参数说明
snapshot 说明
| 字段 | 类型 | 说明 |
|---|---|---|
| docChanges | ChangeEvent[] | 更新事件数组 |
| docs | object[] | 数据快照,表示此更新事件发生后查询语句对应的查询结果 |
| type | string | 快照类型,仅在第一次初始化数据时有值为 init |
| id | number | 变更事件 id |
ChangeEvent 说明
| 字段 | 类型 | 说明 |
|---|---|---|
| id | number | 更新事件 id |
| queueType | string | 列表更新类型,表示更新事件对监听列表的影响,枚举值,定义见 QueueType |
| dataType | string | 数据更新类型,表示记录的具体更新类型,枚举值,定义见 DataType |
| docId | string | 更新的记录 id |
| doc | object | 更新的完整记录 |
| updatedFields | object | 所有更新的字段及字段更新后的值,key 为更新的字段路径,value 为字段更新后的值,仅在 update 操作时有此信息 |
| removedFields | string[] | 所有被删除的字段,仅在 update 操作时有此信息 |
QueueType 枚举值
| 枚举值 | 说明 |
|---|---|
| init | 初始化列表 |
| update | 列表中的记录内容有更新,但列表包含的记录不变 |
| enqueue | 记录进入列表 |
| dequeue | 记录离开列表 |
DataType 枚举值
| 枚举值 | 说明 |
|---|---|
| init | 初始化数据 |
| update | 记录内容更新,对应 update 操作 |
| replace | 记录内容被替换,对应 set 操作 |
| add | 记录新增,对应 add 操作 |
| remove | 记录被删除,对应 remove 操作 |
小程序云开发 Collection.watch 监听器构建和销毁的更多相关文章
- 用小程序·云开发两天搭建mini论坛丨实战
笔者最近涉猎了小程序相关的知识,于是利用周末时间开发了一款类似于同事的小程序,深度体验了小程序云开发模式提供的云函数.数据库.存储三大能力.关于云开发,可参考文档:小程序·云开发. 个人感觉云开发带来 ...
- 微信小程序--聊天室小程序(云开发)
微信小程序 -- 聊天室小程序(云开发) 从微信小程序开发社区更新watch接口之后,一直在构思这个项目.项目已经完成很久,但是一直都没有空写一篇博客记录展示一下. 开源地址 wx-cloud-im: ...
- 微信小程序云开发指南
一.初识云开发 官方文档 小程序·云开发是微信团队联合腾讯云推出的专业的小程序开发服务. 开发者可以使用云开发快速开发小程序.小游戏.公众号网页等,并且原生打通微信开放能力. 开发者无需搭建服务器,可 ...
- 【微信小程序云开发】从陌生到熟悉
前言 微信小程序在9月10号正式上线了云开发的功能,弱化后端和运维概念,以前开发一个小程序需要申请一个小程序,准备一个https的域名,开发需要一个前端一个服务端,有了云开发只有申请一个小程序,一个前 ...
- 第六章 “我要点爆”微信小程序云开发实例之爆文详情页制作
爆文详情页制作 从首页中数据列表打开相应详情页面的方法: 给数据列表中每个数据项加一个点击事件,同时将当前数据项的id暂时记录在本地,然后跳转到详情页面detail goopen: function ...
- 第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现
第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现 开发环境搭建 使用自己的AppID新建小程序项目,后端服务选择小程序·云开发,点击新建,完成项目新建. 新建成功后跳转到开发者工具界面 ...
- 小程序·云开发的HTTP API调用丨实战
小程序云开发之httpApi调用. 小程序云开发之httpApi调用(返回"47001处理") 技术栈 采用 nodejs + express 搭建web服务器,采用 axios ...
- 基于微信小程序云开发实现的婚礼邀请函模板,可自行定制开发
这个婚礼邀请函是之前帮别人做的,现在人家婚礼举办过了也没啥关系了,想着就修改成通用模板进行开源,方便大家尤其是小白们克隆项目之后稍微修改就能够直接使用. 当时自己开始这个项目时候也是查阅了很多教程文章 ...
- mpvue+小程序云开发,纯前端实现婚礼邀请函
请勿使用本文章及源码作为商业用途! 前言 当初做这个小程序是为了婚礼前的需要,结婚之后,希望这个小程序能够留存下来,特地花了一些空闲时间将小程序转化成为“相册类小程序” 体验码 准备工作 mpvue框 ...
- mpvue+小程序云开发,纯前端实现婚礼邀请函(相册小程序)
请勿使用本文章及源码作为商业用途! 前言 当初做这个小程序是为了婚礼前的需要,结婚之后,希望这个小程序能够留存下来,特地花了一些空闲时间将小程序转化成为“相册类小程序” 体验码 准备工作 mpvue框 ...
随机推荐
- docker-compose创建haproxy教程
本文主要讲解通过docker-compose创建haproxy并进行代理 一.haproxy简介 HAProxy是一款基于事件驱动.单进程模型设计的四层与七层负载均衡器,它能够在TCP/UDP层面以及 ...
- [oeasy]python0133_变量名_标识符_identifier_id_locals
变量名 回忆上次内容 上次讲了 什么是变量 变量变量 能变的量 就是变量 各种系统.游戏就是由变量所组成的 添加图片注释,不超过 140 字(可选) 声明了变量 并且 定义了变量 ...
- Oracle 死锁与慢查询总结
查看死锁 SELECT s.sid "会话ID", s.lockwait "等待锁", s.event "等待的资源/事件", -- 最近等 ...
- Vue 新增不参与打包的接口地址配置文件
Vue 新增不参与打包的接口地址配置文件 by:授客 QQ:1033553122 开发环境 Win 10 Vue 2.5.2 问题描述 vue工程项目,npm run build we ...
- CF 1927
G link 定义\({{dp_i}_j}_k\)为考虑完第i个点,最左边没有染色的点为\(j\),最右边没有染色的点为\(k\)的最小数量. 考虑转移(用自己更新别人) 如果不用\(i\),直接转移 ...
- 解决 IIS Express 启动错误:“拒绝访问”问题
报错 Starting IIS Express ... stderr: Failed to register URL "http://localhost:8378/" for si ...
- scratch源码下载 | 炮轰僵尸
程序说明: <炮轰僵尸>是一款基于Scratch平台制作的游戏程序,它采用了植物大战僵尸的经典场景.在游戏中,玩家需要控制一枚大炮来对抗不断入侵的僵尸.通过移动鼠标,玩家可以调整炮筒的方向 ...
- 【微信小程序】04 生命周期 & 事件
一.应用生命周期: https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html App(Object object) ...
- 【JavaScript】 文本滚动消息提示
需要引入JQ库 <script src="https://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script ...
- 【JDBC】Extra01 Oracle-JDBC
关于驱动包依赖: 官网提供的地址: https://www.oracle.com/database/technologies/jdbc-drivers-12c-downloads.html Maven ...