Jamie888 Ответов: 0

Значение объекта Date только в пределах собственной области видимости?


Привет, у меня есть javascript, в котором у меня было бы 2 объекта date, определенных как new Date(). В середине javascript у меня была бы некоторая логика обработки объекта 2 date и соответствующего изменения их значения. Наконец, у меня было бы простое вычитание, чтобы получить разницу между объектом 2 date.
Мои коды следующие:
var dateObj = new Date();
var dateObjNew = new Date();

var i = 0;
while(i < 1){
//some logic
anything.then(function(data){
  dateObj.setTime(dateObj.getTime() + 300000); //300000 is in milliseconds
  //means I would add 300k milliseconds into the Date object
});

anything2.then(function(data){
  dateObjNew.setTime(dateObjNew.getTime() + 100000); //add 100000 milliseconds here
});
alert('Remaining Time: '+ (dateObj - dateObjNew)); //here the alert will show 'Remaining Time: 0' because the 2 date objects value has been defaulted back to new Date() where they do not take the latest modified values.
i++;
}


Что я уже пробовал:

1. попытался добавить getTime() в финальное оповещение, но результат по-прежнему равен 0.
2. Поиск в интернете, но просмотренные статьи, похоже, не имеют такого рода проблем.
3. попробовал добавить оповещение в пределах 2 .затем(функция(данные)) и объекты даты были обновлены с предполагаемыми миллисекундами. например, DateTime теперь был добавлен 300000 миллисекунд.

F-ES Sitecore

Код в ваших операторах "then" выполняется не сразу, он асинхронен, поэтому цикл while продолжает обрабатывать одновременно и запускает предупреждение до того, как объекты date будут обновлены.

Richard MacCutchan

редактированной

Kornfeld Eliyahu Peter

Я предполагаю, что "что-нибудь" и "что-нибудь 2" должны быть обещаниями, но где они находятся?

Jamie888

Здравствуйте, джентльмены, спасибо за приведенное выше объяснение. Они дают мне хороший намек и больше понимания на этот счет .потом природа. Я изменил свой сценарий, добавив еще один .затем после завершения функции часть и завернул предупреждение в новый .then. Теперь я могу получить обновленные объекты даты.

0 Ответов