내가 [개체 개체] 반환 비동기로 가져오고 기다리고 사용이 공용 API를 가져 오기 위해 노력하고 있지만, 방법을 가져 해요 :은/기다리고 반환 [개체 개체]
나 '클래스를 API를 가져 오기 위해 사용하고 있습니다 : API가 반환
class FetchAnimalApi {
async getAnimalInfo(animal) {
const request = await fetch(`http://my_api_url.com/${animal}`);
const response = await request.json();
return `${animal} goes like ${response.sound}`;
}
}
구조 (동물이 돼지 인 경우) :
{"color": "pink", "sound": "roinc"}
내가 다른 파일에 내 수업을 수입으로 전화 드렸습니다은 :
const animals = new FetchAnimalApi();
console.log(animals.getAnimalInfo('pig'));
그래서 내가 뭘 잘못하고 있니?
편집 :
지금 내을 console.log()가 I 인쇄 할 정확히 보여 주지만, 나는 응답을 반환 할 때, 난 아직도 [개체 개체]를 받고 있어요 :
function getInfo() {
const animals = new FetchAnimalApi();
return animals.getAnimalInfo('pig').then(result => result);
}
동안을 디버깅, 나는 const request = await fetch(
http://my_api_url.com/ $ {animal} )
행이 실행 된 직후 [object object]가 내 화면에 인쇄되고 있다는 것을 깨달았습니다.
'[개체 개체]'단지 때문에 최종 출력에 문자열 변환의 아마. 출력을'console.log()'하면, 원하는 객체가 보일 것입니다. 템플릿 리터럴에 객체를 넣을 수없고 속성을 출력 할 수 없습니다. 또한,'getAnimailInfo()'는 약속을 반환한다. 그래서, 당신은 그 약속으로부터 가치를 얻기 위해서'await' 또는'.then()'을 사용해야합니다. – jfriend00
@ jfriend00 _ 개체를 템플릿 리터럴에 넣을 수없고 속성을 출력 할 수 없습니까? 왜 그렇게 생각하니? – alexmac
@alexmac : 템플릿 리터럴은 "인수"를 문자열로 변환하고 객체의 기본 문자열 표현은 속성 목록이 아닌'[object Object]'입니다. –