잡담

프로미스 패턴 쓰고 콜백지옥 고쳤는데

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
getSummonerInfo()
        .then(summonerjson => {
            console.log("getSummonerInfo 성공");
            return getMatchInfo();
        })
        .then(matchjson => {
            console.log("getMatchInfo 성공");
            return getChampionInfo();
        })
        .then(championjson => {
            console.log("getChampionInfo 성공");
            return getItemInfo();
        })
        .then(itemjson => {
            console.log("getItemInfo 성공");
            //여기서 summonerjson matchjson championjson itemjson 사용하려면 어떻게 해야 함?
        });
cs

 

 

 

마지막에 summonerjson matchjson championjson itemjson 다 써야 하는데 어떻게 해야 하는거임..?

12개의 댓글

2020.04.02

Promise.all([getSummonerInfo(), getMatchInfo(), getChampionInfo(), getItemInfo()])

.then(function (values) {

var summoner = values[0];

var match = values[1];

var champion = values[2];

var item = values[3];

});

1
2020.04.02
@뱀고기

감사감사

0
2020.04.02

위에 받고 깔끔버전

Promise.all([getSummonerInfo(), getMatchInfo(), getChampionInfo(), getItemInfo()])

.then(function (values) {

const [summoner, match, champion, item] = values;

});

1
2020.04.02
@syntaxError

와 감사

근데 잘 되던게 이걸로 바꾸니까

Uncaught (in promise) 200 parser error가 뜸..

0
2020.04.02
@syntaxError

아...자바 내에서

컨트롤러 두개가 동시 실행되서 그러네...

SummonerInfo 컨트롤러 요청 실행되고 MatchInfo 가져와야대는데

둘이 같이 실행돼서..

0
@샤켓

프로미스 all이 순차실생 보장 안함

순차실행하는법 있긴한데 모바일이라 찾기 귀찮네

0
2020.04.02
@안드로이드박사

잘 모르겠어서 그냥 하나만 콜백으로 바꿨어..

0

async await 써라

0
2020.04.02
@안드로이드박사

프로미스 찾다가 그게 끝판왕이래서 해보고싶은데

이 글 같이 쓰는 예시 하나 써주면 안될까

0
@샤켓

집가서써줌 기달

0
@샤켓

 

const sampleF1 = async function() {

  const summonerjson = await getSummonerInfo();

  console.log("getSummonerInfo 성공");

  const matchjson = await getMatchInfo();

  console.log("getMatchInfo 성공");

  const championjson = await getChampionInfo();

  console.log("getChampionInfo 성공");

  const itemjson = await getItemInfo();

  console.log("getItemInfo 성공");

  //여기서 summonerjson matchjson championjson itemjson 사용

}

 

const samleF2 = async function() {

  const promises = [];

  promises.push(getSummonerInfo());

  promises.push(getMatchInfo());

  promises.push(getChampionInfo());

  promises.push(getItemInfo());

  //Promise.All실행. 순서보장 안함 result에 리턴값이 담겨져있음

  const result = await Promise.all(promises);

}

 

const samleF3 = async function() {

  const promises = [];

  let summonerjson;

  let matchjson;

  let championjson;

  let itemjson;

  promises.push(getSummonerInfo().then(result => summonerjson = result ));

  promises.push(getMatchInfo().then(result => matchjson = result ));

  promises.push(getChampionInfo().then(result => championjson = result ));

  promises.push(getItemInfo().then(result => itemjson = result ));

  //Promise리스트들을 순차실행

  await promises.reduce(async (prevProm, postProm) => {

    await prevProm;

    await postProm;

  }, Promise.resolve());

}

1
2020.04.02
@안드로이드박사

와 감사감사

바꿔봐야지

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180613 [컴퓨터] 오 워크스테이션 2 Erino 0 5 시간 전 77
180612 [컴퓨터] 하 갑자기 컴퓨터 화면이 안들어오네... 7 밀실심사 0 8 시간 전 113
180611 [잡담] 5080이 4090은 이기겠지? 4 GNStout 0 9 시간 전 287
180610 [잡담] SSD 물리적인 베드섹터때문에 부팅이 안될수있음?(바이오스단... 3 내일까지 0 9 시간 전 110
180609 [컴퓨터] 노트북 쓰는데 갑자기 화면 뻑남... 11 TvT 0 11 시간 전 127
180608 [잡담] 다음 글카 후보군 어떰 13 Gargantua 0 12 시간 전 157
180607 [견적] 최대작업이 에펙정도면 견적 얼마나 나와요? 8 뚜루뚜뚜뚜 0 13 시간 전 109
180606 [잡담] 니들은 hcn쓰지마라 4 싼디스크 0 14 시간 전 192
180605 [컴퓨터] 혹시 컴잘알 개붕이들 있어?? 6 헤로인 0 14 시간 전 143
180604 [잡담] 제닉스 arena-x 모션 데스크 괜찮음? 10 하이웨이 0 14 시간 전 56
180603 [잡담] Y700 배송 2개월 걸린다지 않았음? 4 빠빠양 0 14 시간 전 173
180602 [모바일] S23U 쓰는개붕이들 6 kg다이어트 0 15 시간 전 178
180601 [잡담] [루머] RTX 5080이 먼저 출시되고, 곧이어 2024년 4분기에 RT... 5 플게이어 0 18 시간 전 417
180600 [잡담] 120 주사율 테블릿중 사이즈가 가장 작은제품이 머임? 11 뭘보냐고ㅡㅡ 0 18 시간 전 186
180599 [컴퓨터] 뭐 좀 물어볼게 10 오라틱스 0 18 시간 전 113
180598 [컴퓨터] 브라보텍 as좋네 8 joyka 0 20 시간 전 123
180597 [모바일] 갤럭시 대안이 있냐? 14 꼬꼬기 0 20 시간 전 292
180596 [잡담] m.2슬롯 고장난거같은데 조언좀 구해용 NVME / SATA 4 내일까지 0 22 시간 전 128
180595 [잡담] 누가봐도 리듬게임만 하는 사람처럼 보이게 꾸밈 1 69746974 0 1 일 전 386
180594 [잡담] 아이패드 가격 꼬라지 어질어질하네 5 참잘했어요 1 1 일 전 449