小程序云开发 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框 ...
随机推荐
- Linux Centos7搭建RabbitMQ
下载依赖 yum -y install epel-release yum -y update 安装Erlang yum -y install erlang socat 测试安装成功 erl -vers ...
- bean的二次加工-Spring5.X后置处理器BeanPostProcessor
什么是BeanPostProcessor 是Spring IOC容器给我们提供的一个扩展接口 在调用初始化方法前后对Bean进行额外加工,ApplicationContext会自动扫描实现了BeanP ...
- MySql(Innodb)事务隔离级别
事务将数据库从一个一致状态转换至另外一个一致状态,若某个事务看到了另外一个事务在状态转换过程中的中间态数据(不一致状态),将有可能导致另外一个事务的操作基于一个不一致的数据库状态,进而数据库失去一致性 ...
- [oeasy]python0099_雅达利大崩溃_IBM的开放架构_兼容机_oem
雅达利大崩溃 回忆上次内容 个人计算机浪潮已经来临 苹果公司迅速发展 微软公司脱离mits准备做纯软件公司 IBM用大型机思路制作的5100惨败 Commodore 64 既做计算机 又做游戏机 计算 ...
- 记录一次在欧拉(openEuler22.03LTS-SP4)系统下安装(踩坑)Freeswitch1.10.11的全过程
目录 前言 安装环境 1. 下载Freeswitch 1.1 git clone 下载freeswitch库 1.2 官网下载 2. 开始安装前的工作 2.1 安装编译时需要的环境[先安装这个!] 2 ...
- TIER 0: Dancing
TIER 0: Dancing SMB Server Message Block 是一种网络协议,用于在计算机网络上共享文件.打印机和其他资源.它最初由微软开发,用于在 Windows 操作系统之间进 ...
- Nuxt.js 环境变量配置与使用
title: Nuxt.js 环境变量配置与使用 date: 2024/7/25 updated: 2024/7/25 author: cmdragon excerpt: 摘要:"该文探讨了 ...
- 【Mybatis-Plus】05 条件构造器 ConditionConstructor
理解: 原来叫条件构造器,我一直以为都是封装条件对象 即SQL的查询条件,不过都一样. 其目的是因为的实际的需求灵活多变,而我们的SQL的筛选条件也需要跟着变化, 但是有一些固定的字段固定的方式可以保 ...
- Apache DolphinScheduler 3.0.6 发布,或将是最后一个 3.0.X 版本
Apache DolphinScheduler 于近日发布了 3.0.6 版本,主要针对 3.0.5 重要 bug 进行修复.如果之后没有发现重大问题,3.0.6 将会是 3.0.x 最后一个版本. ...
- 推荐一个优秀的 .NET MAUI 组件库
前言 .NET MAUI 的发布,项目中可以使用这个新的跨平台 UI 框架来轻松搭建的移动和桌面应用. 为了帮助大家更快地构建美观且功能丰富的应用,本文将推荐一款优秀的 .NET MAUI 组件库MD ...