С .NET 4.5 (или .NET 4.0 + Microsoft.Bcl.Async ) лучший способ - использовать API Task
и async/await
. Это позволяет использовать удобный (псевдо) последовательный рабочий процесс кода и иметь структурированную обработку исключений.
Пример:
private async void Start(object sender, RoutedEventArgs e)
{
try
{
await Task.Run(() =>
{
int progress = 0;
for (; ; )
{
System.Threading.Thread.Sleep(1);
progress++;
Logger.Info(progress);
}
});
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Дополнительная информация:
Angular позволяет выполнять проверку типа ответа . Вам не нужно анализировать JSON вручную.
Вот фрагмент кода из вашего примера (я рекомендую использовать типы):
messages: Message[] = []
getMessage() {
this.http.get<Message[]>('http://localhost:3000/newroute').subscribe((res: Message[]) => {
this.messages = res;
});
}
(обновление)
На основании предоставленных вами данных интерфейс для Message может выглядеть следующим образом :
export interface Message {
[s: string]: string;
}
Однако, если «Сообщения» могут иметь только определенные ключи, такие как «сообщение» и «приветствие», то вы можете добавить любой из них в качестве необязательных свойств.
export interface Message {
message?: string;
greeting?: string;
}
HttpClient предоставляет вам только объект json, поэтому нет необходимости снова выполнять .json (). Так что сделайте следующий код, который работает для вас
getMessage(){
this.http.get('http://localhost:3000/newroute').subscribe(res =>{
let messages: any = res;
this.messages = messages;
})
}
Просто сделайте:
getMessage(){
this.http.get('http://localhost:3000/newroute').subscribe(res =>{
this.messages = res;
})
}