Карта не попадает в стек навигации, почему бы и нет? Есть ли предел?

В стеке находится одна корневая карта и еще одна. Я делаю проверку данных. Если в раскрывающемся списке не выбрано значение файла, это обработчик ошибок для создания новой карты ошибок. Исходная функция выдает ошибку, а catch вызывает мой обработчик ошибок. Когда ошибка вызвана, это ничего не делает, но регистрирует сообщение об ошибке. Кажется, создается новая карта в стенограмме выполнения, заголовке и разделе, однако она не отображается. Я не вижу ошибки в расшифровке стенограммы. Все удается, но новой карты нет.

function error(e){
try{
 // create new card, header, and section 
 var header = CardService.newCardHeader().setTitle('Error')
  .setImageUrl('http://www.pvhc.net/img55/waclmgwigxuizcqbxjdx.jpg')
  .setImageStyle(CardService.ImageStyle.SQUARE);

 var section = CardService.newCardSection()
  .setHeader('<b>Error Message:</b>')
  .addWidget(CardService.newTextParagraph().setText(e));

 var card = CardService.newCardBuilder()
  .setHeader(header).addSection(section).build();

 // Create Nav object
 var nav = CardService.newNavigation().pushCard(card);

 // Check if my function is being called and the error message is correct.
 Logger.log(e);

 // push card onto stack.
 return CardService.newActionResponseBuilder().setNavigation(nav);
}catch(e){Logger.log(e.message);}
}

Обновление: в моем операторе catch у меня не было оператора return до вызова функции error. Теперь я получаю ошибку во время выполнения: "Отсутствуют обязательные поля в разметке:". Не уверен почему.

2 ответа

Решение

Хотя я изначально не включал 'return' при вызове моего обработчика ошибок, я также не создавал построитель ответов действий при его возврате.

Исходное утверждение: return CardService.newActionResponseBuilder (). SetNavigation(nav);

Исправление: return CardService.newActionResponseBuilder (). SetNavigation(nav).build ();

Это сейчас работает.

Не забудьте построить Карту! Вы должны построить карту.

return CardService.newActionResponseBuilder().setNavigation(nav).build();
Другие вопросы по тегам