인프런 커뮤니티 질문&답변

ajrfyd님의 프로필 이미지
ajrfyd

작성한 질문수

함수형 프로그래밍과 JavaScript ES6+

range와 느긋한 L.range

비동기 관련 질문입니다!

해결된 질문

작성

·

375

0

안녕하세요! 강의 잘 듣고 있습니다.

덕분에 함수형 프로그래밍에 대해 많은 관심을

가지게 되었고, 또한 실제로 회사 프로젝트 내에서도

저는 fxjs를 적극 활용하여 사용하고 있습니다.

강의를 여러번 돌려 보고는 있지만 DB를 오가며

사용하는 비동기 상황에는 미흡하고 궁금해 질문

드립니다.

아래는 Node.js 서비스 함수 안에서 사용 하고 있으며

DB(mysql)에 접근해 update하는 로직입니다.

fn: async() => {
  _.go(
      배열,
      _.map(로직),
      _.each(async(num) => await MemberBookmark.update({ where: { target_id: num } })),
    );
} 

map으로 가공된 배열을 활용하여 each에서 DB를

업데이트 하는 로직으로 위와 같이 작성 하였는데

문제는 없을지 모르겠습니다. 일단 작동은 제대로 하는데

each함수 내에서 async(num) => await Model 업데이트

이런 식으로 비동기적인 작업을 해도 괜찮을지 궁금합니다!

답변 1

1

유인동님의 프로필 이미지
유인동
지식공유자

() => 
  _.go(
    배열,
    _.map(로직),
    _.each((num) => MemberBookmark.update({ where: { target_id: num } })),
  );


우선 이렇게만 해도 되는 상황으로 보여지구요 :)

async await 를 한다면 이게 좀 더 낫지 않을까 싶어요.

async () => { await .go( 배열, .map(로직), .each((num) => MemberBookmark.update({ where: { targetid: num } })), ); }

ajrfyd님의 프로필 이미지
ajrfyd
질문자

아 이해 했습니다 감사합니닷 !!!

그리고 질문 드릴게 있는데 Array.prototype.forEach 매서드는 비동기 처리를

기다려 주지 않는다???? 비동기에 제약이 있다고 알고있는데 fxjs의 each함수는 내부적으로

비동기에 대한 지원을 하고 있을까요???? 궁금합니다!

유인동님의 프로필 이미지
유인동
지식공유자

네 맞습니다 :)

ajrfyd님의 프로필 이미지
ajrfyd

작성한 질문수

질문하기