Я пытаюсь отправить обратно JSON с указанием текущего времени на всех часовых поясах. У меня есть функция, которая возвращает обещание. Смысл этой функции - после вычисления смещения UT C часового пояса, чтобы преобразовать его в 24-часовой формат. Вот функция.
const timeCheck = (time) => {
return new Promise(function (resolve, reject) {
if (time > 2399) {
time -= 2400
}
else if (time < 0) {
time += 2400
console.log(time)
}
var a = time.toString()
var b=a;
if (a.length === 1) {
b = "000" + a
}
else if (a.length === 2) {
b = "00" + a
}
else if (a.length === 3) {
b = "0" + a
}
time = b
resolve(time)
})
}
Проблема в том, что существует около 250 различных часовых поясов (хранящихся в переменных), которые необходимо использовать при вызове функции 250 раз. Вот мое глупое решение.
timeCheck(EST).then((newEST) => {
timeCheck(UST).then((newUST)=>{
res.json({
"UST": newUST,
"EST":newEST
})
})
})
Как видите, я вызываю функцию снова и снова, пропускаю разные часовые пояса в качестве параметра и использую цепочку обещаний. Это работает, но я не думаю, что это возможно повторить этот процесс 250 раз. Есть ли более разумный способ сделать это?
Я вызываю эту функцию внутри асинхронной функции.
app.get('/currently', (req, res) => {
getUST().then( (result) => {...
Вот getUST, если это поможет:
const getUST = () => {
return new Promise(function (resolve, reject) {
const url = "http://worldclockapi.com/api/json/utc/now"
request({ url: url, json: true }, (error, response) => {
if (error) {
return
}
const time = response.body.currentDateTime
const usableTime = time.substring(11, 16).replace(':', '')
resolve(usableTime)
})
})
}