diff --git a/utils/base_context/include/netstack_base_context.h b/utils/base_context/include/netstack_base_context.h index 4d05cfc4775638e6d989537aab9439f2cf0b68a1..cc80e5b27ffcfada8a9543eb0d55017a4934eed2 100644 --- a/utils/base_context/include/netstack_base_context.h +++ b/utils/base_context/include/netstack_base_context.h @@ -74,7 +74,7 @@ public: [[nodiscard]] bool IsNeedPromise() const; - EventManager *GetManager() const; + [[nodiscard]] EventManager *GetManager() const; protected: EventManager *manager_; diff --git a/utils/event_manager/src/netstack_event_manager.cpp b/utils/event_manager/src/netstack_event_manager.cpp index 8c05ef26becf9239242d3e6c500cb11674df4d18..59bc0fe02dd7c75d28807e669f9fcdff8364db9a 100644 --- a/utils/event_manager/src/netstack_event_manager.cpp +++ b/utils/event_manager/src/netstack_event_manager.cpp @@ -86,10 +86,6 @@ void EventManager::EmitByUv(const std::string &type, void *data, void(Handler)(u auto workWrapper = new UvWorkWrapper(data, listener.GetEnv(), listener.GetCallbackRef()); listener.EmitByUv(type, workWrapper, Handler); }); - - auto it = std::remove_if(listeners_.begin(), listeners_.end(), - [type](const EventListener &listener) -> bool { return listener.MatchOnce(type); }); - listeners_.erase(it, listeners_.end()); } bool EventManager::HasEventListener(const std::string &type) diff --git a/utils/module_template/include/netstack_module_template.h b/utils/module_template/include/netstack_module_template.h index 7248dcbef39d076bfa5f0499cc73ae022319c3c5..3a3626f01a8966698c6d6733ce740575c6b7d264 100644 --- a/utils/module_template/include/netstack_module_template.h +++ b/utils/module_template/include/netstack_module_template.h @@ -55,7 +55,7 @@ napi_value Interface(napi_env env, } context->CreateAsyncWork(asyncWorkName, executor, callback); - if (NapiUtils::GetValueType(env, context->GetCallback()) != napi_function) { + if (NapiUtils::GetValueType(env, context->GetCallback()) != napi_function && context->IsNeedPromise()) { NETSTACK_LOGI("context->CreatePromise()"); return context->CreatePromise(); }