프로미스 객체를 반환하는 함수들이 있고 그 함수들을 한번에 처리하는 Promise.allSetteld()를 사용하였습니다.
const exEmail = dataWorker.FindEmailToJoin(email);
const exNick = dataWorker.FindNick(nickname);
const matchedPass = dataWorker.MatchPasswordToLogin(password, repassword);
const hash = dataWorker.MakeHash(matchedPass);
const valid = await Promise.allSettled([exEmail, exNick, hash]);
여기서 valid변수의 값이 배열 형식이더라구요. Promise.allSetteld()함수안에 인수들은 이메일이 존재하는지, 닉네임이 존재하는지, 비밀번호를 해쉬화 시킨값 등을 나타냅니다. valid 배열안에는 값이 다음과 같은 형식으로 들어있었습니다.
0:{status: 'fulfilled', value: '[email protected]'}
1:{status: 'fulfilled', value: 'user'}
2:{status: 'fulfilled', value: '$2b$12$zdYwq8dY7kWTx.Ow1UaZf.ufuXEIJrEOP.WHfg8Nk8SZbHr9xXhHy'}
문제는 valid 안에 있는 인덱스 내의 객체들(ex: ‘[email protected]’, ‘user’)을 다른 함수에서 인수로 사용해야 하는데 배열값이다보니 인덱스로 접근을 해야한다는 것입니다. 예를 들어 valid안에서 이메일을 사용한다면 valid[0].value 이런식으로 말이죠 뭔가 형평성이 맞지 않다고 생각하여 데이터타입을 변경하고 싶은데 변수(ex const email = valid[0].value
)로 선언하는 방식이아닌 valid[0].value 대신 valid.email을 사용하여 '[email protected]’를 참조하는 방법이 있을까요?