diff --git a/interfaces/kits/js/src/mod_fs/properties/copy.cpp b/interfaces/kits/js/src/mod_fs/properties/copy.cpp index b3a8b57168f71dfb06e2add5580449b90c5db46f..f6cfdad1125c84724e3239ac122fd5c1c4f82d64 100644 --- a/interfaces/kits/js/src/mod_fs/properties/copy.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/copy.cpp @@ -379,12 +379,14 @@ napi_value Copy::Async(napi_env env, napi_callback_info info) return nullptr; } auto cbExec = [infos, callback]() -> NError { - std::function processListener = - [infos, callback](uint64_t processSize, uint64_t totalSize) -> void { - callback->progressSize = processSize; - callback->totalSize = totalSize; - OnFileReceive(infos); - }; + Storage::DistributedFile::ProcessCallback processListener; + if (infos->hasListener) { + processListener = [infos, callback](uint64_t processSize, uint64_t totalSize) -> void { + callback->progressSize = processSize; + callback->totalSize = totalSize; + OnFileReceive(infos); + }; + } if (infos->taskSignal != nullptr) { infos->taskSignal->MarkDfsTask(); infos->taskSignal->SetCopyTaskUri(infos->srcUri, infos->destUri);