1{ 2 "Napi Async Func": { 3 "prefix": "napiasyncwork", 4 "body": [ 5 "struct AsyncData{", 6 " napi_async_work work;", 7 " napi_ref callbackRef;", 8 " // save async work param in.", 9 " // save async work result.", 10 "};", 11 "static void ExecuteAsyncWork(napi_env env, void* data) {", 12 " std::this_thread::sleep_for(std::chrono::seconds(2));", 13 " OH_LOG_Print(LOG_APP, LOG_INFO, LOG_DOMAIN, \"ASYNC\", \"ExecuteAsyncWork\");", 14 "}", 15 "static void CompleteAsyncWork(napi_env env, napi_status status, void* data) {", 16 " // Todo: you can use \"napicallfunc\" command that execute the callback.", 17 " OH_LOG_Print(LOG_APP, LOG_INFO, LOG_DOMAIN, \"ASYNC\", \"CompleteAsyncWork\");", 18 "}", 19 "napi_value StartAsyncWork(napi_env env, napi_callback_info info)", 20 "{", 21 " // Create an asynchronous work object.", 22 " napi_create_async_work(env, nullptr, resourceName, ExecuteAsyncWork, CompleteAsyncWork, asyncData, &asyncData->work);", 23 " // Add the asynchronous work object to a queue.", 24 " napi_queue_async_work(env, asyncData->work);", 25 " OH_LOG_Print(LOG_APP, LOG_INFO, LOG_DOMAIN, \"ASYNC\", \"Main thread.\");", 26 " return nullptr;", 27 "}" 28 ] 29 } 30}