@NikFedoseev

Как вернуть результат из промиса?

Добрый день, подскажите пожалуйста, почему payload.message равен undefined?

module.exports = function (command) {
    let payload = {};
    let userMessage = command.toLowerCase();


    switch (state[state.length -1 ]) {
        case 'initial':         
            if (userMessage == 'расписание') {
                payload.message = '*тут будет расписание*';
                payload.keyboard = scheduleKeyboard();
                state.push('schedule');
            }
            else if (userMessage == 'настройки') {
                payload.message = '*тут будут настройки*';
                payload.keyboard = settingsKeyboard();
                state.push('settings');
            }
            else if (userMessage == 'карта') {
                payload.message = '*тут будет карта*';
                payload.attachment = sendMap();
            }
            else {
                payload.message = 'введите команду'
            }
            break;
        case 'schedule':
            if (userMessage == 'сегодня') {
                parser().then(schedule => {
                    payload.message = schedule[0].date; //тут что то не так
                });
            }
            else if (userMessage == 'завтра') {
                payload.message = '*тут будут расписание на завтра*';

            }
            else if (userMessage == 'на неделю') {
                payload.message = '*тут будет расписание на неделю*';

            }
            else if (userMessage == 'назад') {
                payload.message = '*тут назад*';
                payload.keyboard = initialKeyboard();
                state.pop();
            }
            else {
                payload.message = 'введите команду';
            }
            break;
        case 'settings' :
                if (userMessage == 'группа') {
                    payload.message = '*тут можно будет настроить группу *';
                }
                else if (userMessage == 'назад') {
                    payload.message = '*тут назад*';
                    payload.keyboard = initialKeyboard();
                    state.pop();
                }
                else {
                    payload.message = 'введите команду';
                }
            break;
        default :
            payload.message = 'введите команду';
            break;
    }
    return payload;
}
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
@StockholmSyndrome
примерно так:
async function f() {
  let payload = {}; 

  let schedule = await parser(); 
  payload.message = schedule[0].date;

  return payload;
}

// использование
f().then((payload) => {
  console.log(payload);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы