Fs-stat дает значение - Node.js

моя проблема в том, что я хочу, чтобы время обработки было вне функции fs-stat. Как мне этого добиться? С асинхронностью это не работает, или как бы вы это сделали?

var time;
time = fs.stat(path, function(err, stats){  
  timestamp = stats.mtimeMs;
  console.info(timestamp); // 65463453
  return timestamp;
});

Как я могу получить результат от «функции (ошибка, статистика)» «fs-stat» в переменной «время»?

где вы хотите использовать это значение? Лучший способ использовать это, вы можете создать обещание, а затем вызвать из любой функции.

Sayed Tauseef Haider Naqvi 14.02.2019 11:18

@SayedTauseefHaiderNaqvi Я хочу использовать это значение в функции, которая находится снаружи, и как я могу дать на это обещание?

gegner1111 14.02.2019 11:21

показать вам код функции от вас использовать это значение

Sayed Tauseef Haider Naqvi 14.02.2019 11:22

удалите свой комментарий из ответов и обновите свой вопрос, чтобы другие люди также поняли вопрос

Sayed Tauseef Haider Naqvi 14.02.2019 11:35

См. stackoverflow.com/questions/14220321/…

vsemozhebuty 14.02.2019 14:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
249
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

@SayedTauseefHaiderNaqvi

Это полный код:

function getTime(path) {

   var fs = require('fs');
   var time;
   time = fs.stat(path, function(err, stats){  
     timestamp = stats.mtimeMs;
     console.info(timestamp); //65463453
     return timestamp;
   });
   console.info(time); //undefined
   return time;
 }
Ответ принят как подходящий

Вы можете написать такой код и вызвать функцию getTime с обещанием, и вы получите значение.

var fs = require('fs');
function getTime(path) {
    return new Promise(function (resolve, reject) {
        fs.stat(path, function (err, stats) {
            if (err) {
                return reject(err)
            }
            return resolve(stats.mtimeMs);
        });
    })
}

функция вызова, как это

getTime('./').then(function (timestamp) {
    console.info(timestamp)
})

я проверял это, но этот код не работает =( когда я выдаю его, появляется "undefined"

gegner1111 14.02.2019 11:36

@gegner1111 исправлено

Sayed Tauseef Haider Naqvi 14.02.2019 11:44

@SayedTauseefHaiderNaqvi следующая проблема ... как вы мне показали, время доступно только в блоке «тогда». Есть ли способ использовать время вне этого блока?

gegner1111 14.02.2019 11:55

@ gegner1111 gegner1111 Не могли бы вы поделиться своим кодом, где вы хотите использовать это значение, чтобы я мог лучше понять ваше использование.

Sayed Tauseef Haider Naqvi 14.02.2019 13:07

@SayedTauseefHaiderNaqvi, я исправил это. Спасибо в любом случае!

gegner1111 14.02.2019 13:20

Другие вопросы по теме