From 421536471daddad7531350350b34df3fe929b428 Mon Sep 17 00:00:00 2001 From: liuyanzhi Date: Tue, 9 May 2023 06:16:18 +0000 Subject: [PATCH] fix napi Signed-off-by: liuyanzhi Change-Id: I1f849de5a5874fc2105595d16e53e9a797ff31d5 --- frameworks/js/napi/src/cancel.cpp | 20 ++++++++++++++++---- frameworks/js/napi/src/common.cpp | 4 ++-- frameworks/js/napi/src/publish.cpp | 8 ++++---- frameworks/js/napi/src/slot.cpp | 16 ++++++++-------- frameworks/js/napi/src/subscribe.cpp | 9 +++++---- 5 files changed, 35 insertions(+), 22 deletions(-) diff --git a/frameworks/js/napi/src/cancel.cpp b/frameworks/js/napi/src/cancel.cpp index eac75b63f..055816b3b 100644 --- a/frameworks/js/napi/src/cancel.cpp +++ b/frameworks/js/napi/src/cancel.cpp @@ -47,11 +47,23 @@ napi_value ParseParameters(const napi_env &env, const napi_callback_info &info, // argv[1]: label: string / callback if (argc >= CANCEL_MAX_PARA - 1) { NAPI_CALL(env, napi_typeof(env, argv[PARAM1], &valuetype)); - if (valuetype != napi_string && valuetype != napi_function) { + if (valuetype == napi_undefined || valuetype == napi_null) { + return Common::NapiGetNull(env); + } + if (valuetype != napi_number && valuetype != napi_boolean && + valuetype != napi_string && valuetype != napi_function) { ANS_LOGW("Wrong argument type. String or function expected."); return nullptr; } - if (valuetype == napi_string) { + if (valuetype == napi_number) { + int64_t number = 0; + NAPI_CALL(env, napi_get_value_int64(env, argv[PARAM1], &number)); + paras.label = std::to_string(number); + } else if (valuetype == napi_boolean) { + bool result = false; + NAPI_CALL(env, napi_get_value_bool(env, argv[PARAM1], &result)); + paras.label = std::to_string(result); + } else if (valuetype == napi_string) { char str[STR_MAX_SIZE] = {0}; size_t strLen = 0; NAPI_CALL(env, napi_get_value_string_utf8(env, argv[PARAM1], str, STR_MAX_SIZE - 1, &strLen)); @@ -65,8 +77,8 @@ napi_value ParseParameters(const napi_env &env, const napi_callback_info &info, if (argc >= CANCEL_MAX_PARA) { NAPI_CALL(env, napi_typeof(env, argv[PARAM2], &valuetype)); if (valuetype != napi_function) { - ANS_LOGW("Wrong argument type. Function expected."); - return nullptr; + ANS_LOGW("Callback is not function excute promise."); + return Common::NapiGetNull(env); } napi_create_reference(env, argv[PARAM2], 1, ¶s.callback); } diff --git a/frameworks/js/napi/src/common.cpp b/frameworks/js/napi/src/common.cpp index 1af370bc2..0a7ef1522 100644 --- a/frameworks/js/napi/src/common.cpp +++ b/frameworks/js/napi/src/common.cpp @@ -209,8 +209,8 @@ napi_value Common::ParseParaOnlyCallback(const napi_env &env, const napi_callbac if (argc >= ONLY_CALLBACK_MAX_PARA) { NAPI_CALL(env, napi_typeof(env, argv[PARAM0], &valuetype)); if (valuetype != napi_function) { - ANS_LOGE("Wrong argument type. Function expected."); - return nullptr; + ANS_LOGE("Callback is not function excute promise."); + return Common::NapiGetNull(env); } napi_create_reference(env, argv[PARAM0], 1, &callback); } diff --git a/frameworks/js/napi/src/publish.cpp b/frameworks/js/napi/src/publish.cpp index 21dc9b50f..ac99d72b2 100644 --- a/frameworks/js/napi/src/publish.cpp +++ b/frameworks/js/napi/src/publish.cpp @@ -34,8 +34,8 @@ napi_value GetCallback(const napi_env &env, const napi_value &value, ParametersI napi_valuetype valuetype = napi_undefined; NAPI_CALL(env, napi_typeof(env, value, &valuetype)); if (valuetype != napi_function) { - ANS_LOGW("Wrong argument type. Function expected."); - return nullptr; + ANS_LOGW("Callback is not function excute promise."); + return Common::NapiGetNull(env); } napi_create_reference(env, value, 1, ¶ms.callback); ANS_LOGI("end"); @@ -70,8 +70,8 @@ napi_value ParseParameters(const napi_env &env, const napi_callback_info &info, if (argc >= PUBLISH_NOTIFICATION_MAX - 1) { NAPI_CALL(env, napi_typeof(env, argv[PARAM1], &valuetype)); if ((valuetype != napi_number) && (valuetype != napi_function)) { - ANS_LOGW("Wrong argument type. Function or object expected."); - return nullptr; + ANS_LOGW("Wrong argument type. Function or object expected. Execute promise"); + return Common::NapiGetNull(env); } if (valuetype == napi_number) { diff --git a/frameworks/js/napi/src/slot.cpp b/frameworks/js/napi/src/slot.cpp index d87a4f353..af1a1f799 100644 --- a/frameworks/js/napi/src/slot.cpp +++ b/frameworks/js/napi/src/slot.cpp @@ -197,8 +197,8 @@ napi_value ParseParametersByAddSlot(const napi_env &env, const napi_callback_inf if (argc >= ADD_SLOT_MAX_PARA) { NAPI_CALL(env, napi_typeof(env, argv[PARAM1], &valuetype)); if (valuetype != napi_function) { - ANS_LOGE("Wrong argument type. Function expected."); - return nullptr; + ANS_LOGE("Callback is not function excute promise."); + return Common::NapiGetNull(env); } napi_create_reference(env, argv[PARAM1], 1, ¶s.callback); } @@ -250,8 +250,8 @@ napi_value ParseParametersByAddSlots(const napi_env &env, const napi_callback_in if (argc >= ADD_SLOTS_MAX_PARA) { NAPI_CALL(env, napi_typeof(env, argv[PARAM1], &valuetype)); if (valuetype != napi_function) { - ANS_LOGE("Wrong argument type. Function expected."); - return nullptr; + ANS_LOGE("Callback is not function excute promise."); + return Common::NapiGetNull(env); } napi_create_reference(env, argv[PARAM1], 1, ¶s.callback); } @@ -349,8 +349,8 @@ napi_value ParseParametersByGetSlot(const napi_env &env, const napi_callback_inf if (argc >= GET_SLOT_MAX_PARA) { NAPI_CALL(env, napi_typeof(env, argv[PARAM1], &valuetype)); if (valuetype != napi_function) { - ANS_LOGE("Wrong argument type. Function expected."); - return nullptr; + ANS_LOGE("Callback is not function excute promise."); + return Common::NapiGetNull(env); } napi_create_reference(env, argv[PARAM1], 1, ¶s.callback); } @@ -467,8 +467,8 @@ napi_value ParseParametersByRemoveSlot( if (argc >= REMOVE_SLOT_MAX_PARA) { NAPI_CALL(env, napi_typeof(env, argv[PARAM1], &valuetype)); if (valuetype != napi_function) { - ANS_LOGE("Wrong argument type. Function expected."); - return nullptr; + ANS_LOGE("Callback is not function excute promise."); + return Common::NapiGetNull(env); } napi_create_reference(env, argv[PARAM1], 1, ¶s.callback); } diff --git a/frameworks/js/napi/src/subscribe.cpp b/frameworks/js/napi/src/subscribe.cpp index dc149e4fb..565c261c6 100644 --- a/frameworks/js/napi/src/subscribe.cpp +++ b/frameworks/js/napi/src/subscribe.cpp @@ -1226,8 +1226,9 @@ napi_value ParseParameters(const napi_env &env, const napi_callback_info &info, if (argc >= SUBSRIBE_MAX_PARA - 1) { NAPI_CALL(env, napi_typeof(env, argv[PARAM1], &valuetype)); if ((valuetype != napi_function) && (valuetype != napi_object)) { - ANS_LOGE("Wrong argument type for arg1. Function or NotificationSubscribeInfo object expected."); - return nullptr; + ANS_LOGE("Wrong argument type for arg1." + "Function or NotificationSubscribeInfo object expected. Excute promise"); + return Common::NapiGetNull(env); } if (valuetype == napi_function) { napi_create_reference(env, argv[PARAM1], 1, &callback); @@ -1243,8 +1244,8 @@ napi_value ParseParameters(const napi_env &env, const napi_callback_info &info, if (argc >= SUBSRIBE_MAX_PARA) { NAPI_CALL(env, napi_typeof(env, argv[PARAM2], &valuetype)); if (valuetype != napi_function) { - ANS_LOGE("Wrong argument type. Function expected."); - return nullptr; + ANS_LOGE("Callback is not function excute promise."); + return Common::NapiGetNull(env); } napi_create_reference(env, argv[PARAM2], 1, &callback); } -- Gitee