private subscriber = null;
private createSubscriber() { if (this.subscriber) { this.text = "subscriber already created"; } else { commonEvent.createSubscriber({ // 创建订阅者 events: ["testEvent"] // 指定订阅的事件名称 }, (err, subscriber) => { // 创建结果的回调 if (err) { this.text = "create subscriber failure" } else { this.subscriber = subscriber; // 创建订阅成功 this.text = "create subscriber success"; } }) } }
private subscribe() { if (this.subscriber) { // 根据创建的subscriber开始订阅事件 commonEvent.subscribe(this.subscriber, (err, data) => { if (err) { // 异常处理 this.text = "subscribe event failure: " + err; } else { // 接收到事件 this.text = "subscribe event success: " + JSON.stringify(data.event) + ", " + JSON.stringify(data); } }) } else { this.text = "please create subscriber"; } }
private unsubscribe() { if (this.subscriber) { commonEvent.unsubscribe(this.subscriber, (err) => { // 取消订阅事件 if (err) { this.text = "unsubscribe event failure: " + err; } else { this.subscriber = null; this.text = "unsubscribe event success: "; } }) } else { this.text = "already subscribed"; } }
private publishEvent() { commonEvent.publish("testEvent", (err) => { // 发布事件,事件名称为testEvent if (err) { // 结果回调 this.publish = "publish event error: " + err.code + ", " + err.message + ", " + err.name + ", " + err.stack; } else { this.publish = "publish event success"; } }) }
private publishEventWithData() { commonEvent.publish("testEvent", { // 发布事件,事件名称为testEvent code: 10086, // 事件携带的参数 data: "publish with data", parameters: { id: 1, content: "坚果" } // 事件携带的参数 }, (err) => { // 结果回调 if (err) { this.publish = "publish event error: " + err.code + ", " + err.message + ", " + err.name + ", " + err.stack; } else { this.publish = "publish event with data success"; } }) }
build() { Column({ space: 10 }) { Button("创建订阅者") .size({ width: 260, height: 50 }) .onClick(() => { this.createSubscriber(); }) Button("订阅公共事件") .size({ width: 260, height: 50 }) .onClick(() => { this.subscribe(); })
Button("取消订阅") .size({ width: 260, height: 50 }) .onClick(() => { this.unsubscribe(); })
Text(this.text) .size({ width: 260, height: 260 }) .fontSize(22) .backgroundColor("#dbdbdb")
Divider() .size({ width: 260, height: 5 })
Button("发布公共事件") .size({ width: 260, height: 50 }) .onClick(() => { this.publishEvent(); })
Button("发布公共事件指定公共信息") .size({ width: 260, height: 50 }) .onClick(() => { this.publishEventWithData(); })
Text(this.publish) .size({ width: 260, height: 150 }) .fontSize(22) .backgroundColor("#dbdbdb")
} .padding(10) .size({ width: "100%", height: '100%' }) } }
完毕
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!