import axios from "axios";
export function getCodeByName(name:string){
}
export interface dyData{
list:any|null,
year:number|null,
reprt_code:string|null
}
async function getDividendYieldByCode(corCode:string):Promise<dyData[]>{
//연도를 거슬러가며 사업보고서, 3분기 2분기 1분기 순으로 훑어 유효한 데이터일시 리턴
let result:any[] = [];
let ReportCode = ['11011', '11014', '11012', '11013']//사업보고서, 3분기 2분기 1분기
const currentDate = new Date();
let currentYear:number = currentDate.getFullYear();
let dyData:dyData = {
list:null,
year:null,
reprt_code:null
};
let i:number = 0;
while(i < 2){//2년 동안만 조사
i++
for(let code of ReportCode){
console.log('code', code);
let url:string = `alotMatter.json?crtfc_key=내키값&corp_code=${corCode}&bsns_year=${currentYear}&reprt_code=${code}`
await axios.get('/stockApi/' + url)
.then((res)=>{
console.log(res.data);
if(res.data.status ==='000'){
dyData = {
list:res.data.list,
year:currentYear,
reprt_code:code
}
return dyData.list;
}
})
.then((list) => {
result = list;
})
if(result) break;
}
currentYear--;
if(result) break;
}
return result;
}
export {getDividendYieldByCode}
요지는 axios에 await를 사용하여 결과가 처리되길 기다리고, 처리된 값을 기준으로 break처리하여 프로미스를 반환한다는 것이다.
'컴퓨터 > 웹 : JS' 카테고리의 다른 글
[js]인풋으로 사진 입력받아 띄우기 (0) | 2023.08.18 |
---|---|
[JS] 화살표 함수로 객체 반환 (0) | 2023.08.08 |
[JavaScript]Spread/Rest 정리(스프레드와 나머지) (0) | 2023.06.02 |
[JQuery] 한방 정리/JQuery 사용법 (0) | 2023.05.29 |
[JS] 자바스크립트 문자열/String 객체, 문자열 사용법 (0) | 2023.05.09 |
댓글