'ERR_UNHANDLED_REJECTION UnhandledPromiseRejection when awaited inside an array of promise Objects

I am trying to understand async await with promises and for..of loop. I have a function which generates promise by resolving if an even number is passed to it and by rejecting if odd number is passed to it. Inside an async function I am tying to await but getting UnhandledPromiseRejection even though I am catching the error. My question is what points i am missing. Why I am getting UnhandledPromiseRejection and how to handle it. I need conceptual information

function genPromise(value) {
    return new Promise((resolve, reject) => {
        if (value % 2) {
            resolve(`The value ${value} is odd`);
        } else {
            reject(`The value ${value} is even`);
        }
    })
}

(async function () {

    x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    let y = x.map(d => genPromise(d))
    try {
        for await (let k of y) {
            console.log(k);
        }
    } catch (err) {
        console.log(err)
    }
})();


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source