프로미스 객체 사용법 질문

function workP(condition) {
    return new Promise((resolve, reject) => {
        if (condition) {
            resolve("상쾌해~");
        }
        reject("불쾌해!");
    });
}

async function conditionCheck() {
    try {
        const feeling = "good";
        if (feeling === true) {
            const result = await workP(feeling);
            console.log(result);
        } else {
            throw new Error(await workP(feeling));
        }
    } catch (err) {
        console.error("하기 싫은 상태:", err);
    }
}

conditionCheck();

이런 코드가 있을 때 conditionCheck()함수에서 const feeling = "good"이라는 변수를 만들고 조건문에서 feeling이 true와 같은지 검사한 후 참이면 workP()함수에서 condition이 true면 resolve()함수로 "상쾌해~"를 리턴하고 아니면 reject()함수로 "불쾌해!"를 리턴하게 하려합니다. 그런데 코드에서는 feeling 변수가 true상태인데 출력하면 아래와 같습니다.

하기 싫은 상태: Error: 상쾌해~
    at conditionCheck....

feeling 변수가 false 상태이면

하기 싫은 상태: 불쾌해!

이렇습니다.
제가 원하는 결과는 feeling이 true면 상쾌해~를 출력하고 false면

하기 싫은 상태: Error: 불쾌해!
    at conditionCheck

를 출력하게 하고 싶은데 뭔가 정반대로 된 거 같습니다. 해결 방안좀 알려주세요!

이 부분은 무조건 false가 나오는 데다가,

condition에도 boolean이 아닌 string을 넣기 때문에 빈 문자열("")이 아닌 이상 무조건 true로 간주되어 처리됩니다. 타입과 프로그램 흐름에 신경을 쓰면서 만들고자 하는 바를 정리하시는 게 좋다고 생각합니다.

문자열 타입은 true라고 제가 잘못 생각했었네요 감사합니다!