Console.info возвращает значение undefined по почтовому запросу

функция возвращает json, но когда я даю console.info(this.metodo), консоль возвращается с неопределенным, функция находится в ngOnit приложения, я не знаю, что я мог делать неправильно, в коде Я пробовал с обещанием и с подпиской

  public metodo:any;



ngOnInit(): void {
/*     
 this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).toPromise().then(res=> 
{JSON.stringify(console.info(res))})
*/
 this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).subscribe((res) => {
  this.metodo = res;
  console.info(this.metodo);
});
}

Обслуживание

getTransporteMetodo(empId){
return this.http.post(environment.API_URL + 'transporte/getAll', { empId });
 }

json

[
 {
"id": 1,
"emp_id": 1,
"nome": "Retirada na Loja",
"tipo": "RETIRA",
"subtipo": null,
"latLng": [-25.45264, -49.26653],
"vFreteMin": 0,
"vFreteGratis": null,
"periodos": [
  {
    "id": 8,
    "transporte_id": 1,
    "ativo": 1,
    "periodo": "Comercial (das 8h \u00e0s 19h)",
    "corte": "17:00",
    "data": null,
    "week": []
  }
]
 },
]

Можете ли вы проверить, не является ли res неопределенным? Попробуйте console.info(res) и дайте мне знать

Jose Vicente 18.03.2022 14:29

На this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).to‌​Promise().then(res=> {JSON.stringify(console.info(res))}) res возвращает undefined

Leonardo 18.03.2022 14:31

/* this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).su‌​bscribe((res) => { this.metodo = res; console.info(res); }); */ с подпиской ничего не возвращает, не знаю, что я делаю не так в обоих режимах

Leonardo 18.03.2022 14:32

Сначала попробуйте это и дайте мне знать this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).su‌​bscribe((res) => { console.info(res); });

Jose Vicente 18.03.2022 14:33

в этом коде, который вы отправили, он ничего не возвращает на консоль

Leonardo 18.03.2022 14:34

он делает запрос getAll, но ничего не возвращает в консоли, и запрос возвращает обычный json

Leonardo 18.03.2022 14:37

Я думаю, что проблема связана с вашим getTransporteMetodo (empId) в вашем сервисе. Попробуйте это getTransporteMetodo(empId): Observable<any>{ return this.http.post<any>(environment.API_URL + 'transporte/getAll', {empId}); }

Jose Vicente 18.03.2022 14:38

Этот код возвращал некоторые ошибки при размещении в ngOnit. Будет ли это функция, которую мне придется вызывать в ngOnit?

Leonardo 18.03.2022 14:45

Просто предположение, в запросе у вас есть emp.id - должно ли это быть emp_id как ответ?

James 18.03.2022 14:49

Какое значение имеет this.storeS.layout.emp.id? Что произойдет, если он не определен? Не могли бы вы также опубликовать API?

lafleur 18.03.2022 14:50

@lafleur возвращает идентификатор компании, в которой находится человек, например, empId: 3

Leonardo 18.03.2022 15:27

@James Да, empId полезной нагрузки совпадает с emp_id ответа.

Leonardo 18.03.2022 15:34

Но у вас нет empId в полезной нагрузке, у вас есть emp.id.

James 18.03.2022 15:38

@james Полезная нагрузка {"empId":4} Ответ [{"id":9,"emp_id":4,"nome":"Frota Pr\u00f3pria","tipo":"FROTA","subtipo": null,"latLng":[-25.43‌​635,-49.31626],"vFre‌​teMin":0,"vFreteGrat‌​is":80,"periodos":[{‌​"id":10,"transporte_‌​ id":9,"ativo":1,"per‌​iodo":"(Коммерческие 9h \u00e0s 19h)","corte":"17:00","data":null,"week":[] }]},{"id":10,"emp‌​_id":4,"nome":"Retir‌​ada na loja","tipo":"RETIRA","subtipo":null,"latLng":[ -25.43394,-49‌​.31603],"vFreteMin":‌​0,"vFreteGratis":nul‌​l,"periodos":[]}]

Leonardo 18.03.2022 15:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
14
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте ввести это в свой файл service.ts

getTransporteMetodo(empId): Observable<any> {
   return this.http.post<any>(environment.API_URL + 'transporte/getAll', { empId 
   });
 }

Вам понадобится этот импорт в вашем сервисе

import { Observable } from 'rxjs';

После этого проверьте, отображается ли в вашей консоли по-прежнему undefined. Дайте мне знать, что это сработало для вас

по-прежнему возвращается как неопределенное, используя код this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).to‌​Promise().then(res =>{console.info(res)});

Leonardo 18.03.2022 15:17

при этом он даже не возвращается бесконечно в систему this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).su‌​bscribe((res) => { console.info(res); });

Leonardo 18.03.2022 15:17

Другие вопросы по теме