diff --git a/zh-cn/application-dev/reference/apis/js-apis-emitter.md b/zh-cn/application-dev/reference/apis/js-apis-emitter.md index c77ef0bc116f020640db7c0d920bbb82c409867d..5de818ecbf039e5aed6bfc66522efa080b3f37b8 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-emitter.md +++ b/zh-cn/application-dev/reference/apis/js-apis-emitter.md @@ -78,9 +78,10 @@ emitter.once(innerEvent, emitterCallback); ## emitter.off -off(eventId: number): void +off(eventId: number,callback?: Callback\<[EventData](#eventdata)\>): void -取消所有针对该事件ID的订阅。 +取消针对该事件ID的订阅。如果不传入可选参数callback,则取消针对该事件ID的所有订阅。 +如果传入可选参数callback,并且该callback已经通过on或者once接口订阅,则取消该订阅;否则,不做任何处理。 **系统能力**: `SystemCapability.Notification.Emitter` @@ -89,13 +90,24 @@ off(eventId: number): void | 参数名 | 类型 | 必填 | 说明 | | ------- | ------ | ---- | ------ | | eventId | number | 是 | 事件ID | +| callback10+ | Callback\<[EventData](#eventdata)\> | 否 | API version 10 新增取消该事件的回调处理函数。该参数可选,不影响API version 9 及更早版本的接口兼容性 | **示例:** ```javascript +// 取消eventID为1的所有事件回调处理函数 emitter.off(1); ``` +```javascript +// 取消eventID为1的事件回调处理函数 emitterCallback +// 如果该回调处理函数没有被订阅,则不做任何处理 +function emitterCallback() { + console.info('callback'); +} +emitter.off(1, emitterCallback); +``` + ## emitter.emit emit(event: [InnerEvent](#innerevent), data?: [EventData](#eventdata)): void