• Массив Promise обработка исключений?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Недавно делал что-то подобное. Как-то так:

    const cmd = require('node-cmd-promise');
    
    const array = ['google.ru', 'yandex.ru', 'habrahabr.ru', 'yana.ru']
    
    const promisesArray = array.map((url) => {
        return cmd(`ping ${array[i]}`)
            .then((pingResult) => Promise.resolve(pingResult))
            .catch(error => {
                console.error(error);
                return Promise.resolve(null);
            })
    });
    
    Promise.all(promisesArray).then((result) => {
        const finished = result.filter(result => result !== null);
        console.log('succesfully pinged: ', finished);
    })


    Идея в том, чтобы перехватить реджекнутый промиз и вместо него вернуть Promise.resolve с каким-то значением.

    Возможно, есть какой-то более изящный вариант, но я так и не додумался.
    Ответ написан
    3 комментария