From 21f4b6610702caa1d15959b770c8f0b1c3c70b47 Mon Sep 17 00:00:00 2001 From: maan4 Date: Mon, 24 Mar 2025 20:13:47 +0800 Subject: [PATCH] change promise problem Signed-off-by: maan4 --- .../napi/vibrator/src/vibrator_napi_utils.cpp | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/frameworks/js/napi/vibrator/src/vibrator_napi_utils.cpp b/frameworks/js/napi/vibrator/src/vibrator_napi_utils.cpp index 6bebfce..bebac3d 100644 --- a/frameworks/js/napi/vibrator/src/vibrator_napi_utils.cpp +++ b/frameworks/js/napi/vibrator/src/vibrator_napi_utils.cpp @@ -362,6 +362,16 @@ void CompleteCallback(napi_env env, napi_status status, void *data) "napi_call_function fail"); } +void ExecuteCallBack(napi_env env, void *data) +{ + CALL_LOG_ENTER; + sptr asyncCallbackInfo(static_cast(data)); + if (asyncCallbackInfo->flag == "preset") { + asyncCallbackInfo->error.code = PlayPrimitiveEffect(asyncCallbackInfo->info.effectId.c_str(), + asyncCallbackInfo->info.intensity); + } +} + void EmitAsyncCallbackWork(sptr asyncCallbackInfo) { CALL_LOG_ENTER; @@ -373,14 +383,8 @@ void EmitAsyncCallbackWork(sptr asyncCallbackInfo) CHKCV((ret == napi_ok), "napi_create_string_latin1 fail"); asyncCallbackInfo->IncStrongRef(nullptr); napi_status status = napi_create_async_work( - env, nullptr, resourceName, [](napi_env env, void *data) { - CALL_LOG_ENTER; - sptr asyncCallbackInfo(static_cast(data)); - if (asyncCallbackInfo->flag == "preset") { - asyncCallbackInfo->error.code = PlayPrimitiveEffect(asyncCallbackInfo->info.effectId.c_str(), - asyncCallbackInfo->info.intensity); - } - }, CompleteCallback, asyncCallbackInfo.GetRefPtr(), &asyncCallbackInfo->asyncWork); + env, nullptr, resourceName, ExecuteCallBack, CompleteCallback, + asyncCallbackInfo.GetRefPtr(), &asyncCallbackInfo->asyncWork); if (status != napi_ok || napi_queue_async_work_with_qos( asyncCallbackInfo->env, asyncCallbackInfo->asyncWork, napi_qos_user_initiated) != napi_ok) { @@ -401,7 +405,7 @@ void EmitPromiseWork(sptr asyncCallbackInfo) // Make the reference count of asyncCallbackInfo add 1, and the function exits the non-destructor asyncCallbackInfo->IncStrongRef(nullptr); napi_status status = napi_create_async_work( - env, nullptr, resourceName, [](napi_env env, void *data) {}, + env, nullptr, resourceName, ExecuteCallBack, [](napi_env env, napi_status status, void *data) { CALL_LOG_ENTER; sptr asyncCallbackInfo(static_cast(data)); -- Gitee