From d4b922bbca3442a1e5e4e63f63d4a077c49ea00e Mon Sep 17 00:00:00 2001 From: zhangchen Date: Sun, 5 Apr 2020 18:17:41 +0800 Subject: [PATCH] fix: correctly remove once listener with event handler return null --- src/core/instance/events.js | 6 ++---- src/platforms/weex/runtime/modules/events.js | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/core/instance/events.js b/src/core/instance/events.js index 4d5bb552850..8ebbeea38d5 100644 --- a/src/core/instance/events.js +++ b/src/core/instance/events.js @@ -32,10 +32,8 @@ function remove (event, fn) { function createOnceHandler (event, fn) { const _target = target return function onceHandler () { - const res = fn.apply(null, arguments) - if (res !== null) { - _target.$off(event, onceHandler) - } + fn.apply(null, arguments) + _target.$off(event, onceHandler) } } diff --git a/src/platforms/weex/runtime/modules/events.js b/src/platforms/weex/runtime/modules/events.js index c34719483a8..1feac1f5bd6 100755 --- a/src/platforms/weex/runtime/modules/events.js +++ b/src/platforms/weex/runtime/modules/events.js @@ -7,10 +7,8 @@ let target: any function createOnceHandler (event, handler, capture) { const _target = target // save current target element in closure return function onceHandler () { - const res = handler.apply(null, arguments) - if (res !== null) { - remove(event, onceHandler, capture, _target) - } + handler.apply(null, arguments) + remove(event, onceHandler, capture, _target) } }