res.json () HttpClient Response

С .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);
    }
}

Дополнительная информация:

Async в 4.5: Разрешение и аннулирование в асинхронных API .

Async и Await .

Async / Await FAQ .

0
задан amihac 21 February 2019 в 04:22
поделиться

3 ответа

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;
}
0
ответ дан OneLunch Man 21 February 2019 в 04:22
поделиться

HttpClient предоставляет вам только объект json, поэтому нет необходимости снова выполнять .json (). Так что сделайте следующий код, который работает для вас

getMessage(){
  this.http.get('http://localhost:3000/newroute').subscribe(res =>{
  let messages: any = res;
  this.messages = messages;
  })
}
0
ответ дан vasim akram 21 February 2019 в 04:22
поделиться

Просто сделайте:

getMessage(){
  this.http.get('http://localhost:3000/newroute').subscribe(res =>{
  this.messages = res;
  })
}
0
ответ дан Shashank Vivek 21 February 2019 в 04:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: