diff --git a/interfaces/plugin/src/sensor_js.cpp b/interfaces/plugin/src/sensor_js.cpp index 30508cac2452472c963fa7eb61178b26913d4922..22e607012880ec5c3c3229c2d1580f6c9b80c852 100644 --- a/interfaces/plugin/src/sensor_js.cpp +++ b/interfaces/plugin/src/sensor_js.cpp @@ -190,6 +190,9 @@ static bool IsOnceSubscribed(napi_env env, int32_t sensorTypeId, napi_value call std::vector> callbackInfos = g_onceCallbackInfos[sensorTypeId]; for (auto callbackInfo : callbackInfos) { CHKNCC(env, (callbackInfo != nullptr), "callbackInfo is null"); + if (callbackInfo->env != env) { + continue; + } napi_value sensorCallback = nullptr; CHKNRF(env, napi_get_reference_value(env, callbackInfo->callback[0], &sensorCallback), "napi_get_reference_value"); @@ -246,6 +249,9 @@ static bool IsSubscribed(napi_env env, int32_t sensorTypeId, napi_value callback std::vector> callbackInfos = g_onCallbackInfos[sensorTypeId]; for (auto callbackInfo : callbackInfos) { CHKNCC(env, (callbackInfo != nullptr), "callbackInfo is null"); + if (callbackInfo->env != env) { + continue; + } napi_value sensorCallback = nullptr; CHKNRF(env, napi_get_reference_value(env, callbackInfo->callback[0], &sensorCallback), "napi_get_reference_value");