인프런 커뮤니티 질문&답변
Promise.all 연달아 두번 작성하기 질문입니다.
작성
·
324
0
강의에서는 새로운 하나의 게시글 당 태그를 여러개 등록하는게 나오는데, 좀 응용해서 기존에 있는 여러개의 개시글 중 각 게시글 마다 해당하는 태그들을 뽑아서 다대다 관계로 엮어주는 부분을 구현할건데요,
const posts = await Post.findall({});
이렇게 한 후 posts.forEach 후 하나의 게시글 당 태그 여러개 등록하는거랑 똑같이 짰는데, 이런 에러 메시지가 뜹니다..
분명 태그 추출까지는 제대로 잘 된걸 봤는데 이걸 각 게시글마다 등록하는 과정에서 항상 에러가 나는데 그 원인을 모르겠네요.. 웃긴건 일부 게시글은 성공한 걸로 보아서 비동기 코드를 잘못 짠거 같습니다.
참고로 강의에서는 #으로 등록된 거를 기준으로 태그짜는 방법을 설명해주셨는데, 저는 따로 extractTags에서 자동 추출로 구현했습니다.
const addTags = async (post) => {
let tagList = await extractTags({
title: post.title,
description: post.description,
});
const tagResult = await Promise.race(tagList.map(tag => Tag.findOrCreate({
where: {title: tag.toLowerCase()}
})));
console.log(tagResult);
await post.addTags(tagResult.map(r => r[0]));
}
exports.addTagsToPosts = async () => {
try {
const postList = await Post.findAll({
where: {
// 해당 조건(이부분 문제 없음)
}
});
await Promise.all(postList.map(postData => addTags(postData)));
} catch (error) {
console.log(error);
}
}



