У меня есть snakbar, который получает уведомление от веб-службы и отображает информацию о том, было ли выполнение задания успешным или неудачным.
Код для разбора Json:
this.messageService.messageReceived$.subscribe(data => {
this.snakbar.statusBar("Platform job Completed - " + data, "Info");
let webService: WebService = JSON.parse(data);
console.info(webService.message);
console.info(webService.executionId);
console.info(webService.code);
this.spinner.hide();
this.selectedIndex = 1;
}
Я создал интерфейс для анализа Json
interface WebService {
jobId: string,
executionId: string,
code: number,
message: string,
data: string
}
Используя console.info, я могу просматривать данные в консоли. Однако я хочу показать сообщение в snakbar.
Прямо сейчас я получаю 'Platform job Completed - [Object][Object]'
Я хочу что-то подобное в снэкбаре 'Platform job Completed - Success/Failure Info"'
Как мне этого добиться?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Сначала присвойте подписанное значение некоторой переменной.
this.data = data;
Затем попробуйте получить значение сообщения из данных, как показано ниже.
this.snakbar.statusBar("Platform job Completed - " + this.data.message, "Info");
Полный код
const project = JSON.parse(this.dataService.getObject("project"));
if (project != null) {
this.globalAppSateService.onMessage(project);
this.project = project;
}
this.messageService.messageReceived$.subscribe(data => {
this.data = data; // assigning data to reuse
this.snakbar.statusBar("Platform job Completed - " + this.data.message, "Info");
let webService: WebService = JSON.parse(data);
console.info(webService.message);
console.info(webService.executionId);
console.info(webService.code);
this.spinner.hide();
this.selectedIndex = 1;
}
вы получаете ответ внутри подписки? просто поместите console.info(this.data) после назначения данных и проверьте, получили ли вы ответ или нет.
Я получаю сообщение об ошибке Данные свойства не существуют для типа MetaData.component.ts