Значение объекта 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. Теперь я могу получить обновленные объекты даты.