• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

promise 작성로직 수정하려고 하는데 잘 안됩니다. ㅠㅠ

22.01.04 15:19 작성 조회수 145

0

강의 전체 수강했는데요. 강의로는 이해한듯 해도 실제 적용하려니 잘 안되네요. ㅠㅠ
 
아래와 같이 비동기 방식의 업무를 promise 이용해서 작성한 스크립트가 있습니다. 이걸 강의에서 배운대로 go() 안에 넣어서 간결하게 바꾸고 싶은데 잘 안되네요.
const save = function () {
dataArray = [0,1,2]; //비동기 함수인 getAsyncData 세번 수행하기 위한 배열.
runPromise = function(n) {
return new Promise(function(resolve, reject){
setTimeout(function() {
getAsyncData("DATA_AT="+n, function(val) {
DsList[n].data = val;
resolve(n+': resolve');
});
}, n * 300);
});
};
promiseAll = function() {
req = dataArray.map(function(el) {
return runPromise(el).then(function(result){
log(result);
});
});
Promise.all(req).then(function() {
//TODO : promise 전체 수행 완료. 이후 로직 수행
});
}
promiseAll();
}
위 스크립트를 
go(dataArray,
map(..
.
..
...

)
이런식으로 어떻게 바꿀 수 있을까요?
 

답변 1

답변을 작성해보세요.

0

DsList 가 무엇을 하는 역할인지는 모르겠지만

아래와 같이 해볼 수 있습니다. 제 생각에는 더 많이 연습이 필요하시지 않을까 생각해요. :)

 

go(
dataArray,
map(n => new Promise(function(resolve, reject){
setTimeout(function() {
getAsyncData("DATA_AT="+n, function(val) {
DsList[n].data = val;
resolve(n+': resolve');
});
}, n * 300);
})),
)
플레어님의 프로필

플레어

질문자

2022.01.04

감사합니다.