ваш лог c правильный. однако, если вы посмотрите на подпись fs.mikdir
, она вернет void
export function mkdir(path: PathLike, options: MakeDirectoryOptions & { recursive: true }, callback: (err: NodeJS.ErrnoException | null, path: string) => void): void; <---
, что означает, что он не может быть await
ed, хотя он выполняет задачу asyn c, но из-за того, что возвращает void , этого нельзя ждать.
обратный вызов существует, когда вам нужно знать, что произошло с операцией, успешно / не удалось что-то в этом роде, поэтому ваш журнал происходит раньше, потому что mkdir возвращает void.
поэтому, если вам нужно что-то сделать после завершения fs.mikdir
. вы можете использовать fs.mkdirSync
, который будет блокировать выполнение кода до тех пор, пока вызов не будет завершен, или просто выполните свою работу в обратном вызове, который вы передаете функции
fs.mkdir(path.join(__dirname, "/smartsheet_download"),
{ recursive: true }, (err) => {
if (err) {
return console.error(err);
}
__dirname= path.join(__dirname, "/smartsheet_download");
console.log("after func:" + __dirname);
console.log("this must be printed after path at last")
})