diff --git a/interfaces/kits/js/src/mod_fs/properties/copy_file.cpp b/interfaces/kits/js/src/mod_fs/properties/copy_file.cpp index 5a7ea757861d03ec9da14dd1e9cc4ee96a68f3bc..1219d709abc93e976ccfcee97f673380fba13ec9 100644 --- a/interfaces/kits/js/src/mod_fs/properties/copy_file.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/copy_file.cpp @@ -107,24 +107,25 @@ static NError SendFileCore(FileInfo& srcFile, FileInfo& destFile) static tuple ParseJsModeAndProm(napi_env env, const NFuncArg& funcArg) { bool promise = false; - bool hasMode = false; + bool succ = false; int mode = 0; - if (funcArg.GetArgc() == NARG_CNT::THREE && NVal(env, funcArg[NARG_POS::THIRD]).TypeIs(napi_number)) { - promise = true; - hasMode = true; - } else if (funcArg.GetArgc() == NARG_CNT::FOUR) { - hasMode = true; + if (funcArg.GetArgc() == NARG_CNT::TWO) { + return { true, mode, true }; } - - bool succ = false; - if (hasMode) { + if (NVal(env, funcArg[NARG_POS::THIRD]).TypeIs(napi_number)) { + if (funcArg.GetArgc() == NARG_CNT::THREE) { + promise = true; + } tie(succ, mode) = NVal(env, funcArg[NARG_POS::THIRD]).ToInt32(); - if (!succ) { - return { false, mode, promise }; + if (succ && !mode) { + return { true, mode, promise }; } } + if (NVal(env, funcArg[NARG_POS::THIRD]).TypeIs(napi_function)) { + return { true, mode, promise }; + } - return { true, mode, promise }; + return { false, mode, promise }; } static tuple ParseJsOperand(napi_env env, NVal pathOrFdFromJsArg)