cimonlebedev
@cimonlebedev

Как изменить тип у undefined?

От того что я буду ругать JS за понятно что, и хвалить аналогично, ничего не изменится.
Поэтому, спрошу. Кто как справляется и ошибками типа undefined?

В моём случае я хочу чтобы если цикл натыкался на undefined, то он не останаливался а шёл дальше.

axios.jsonp('https://api.vk.com/api.php?oauth=1&method=wall.get&domain='+this.state.userInput+'&count='+this.state.count+'&access_token='+this.state.accessToken+'&fields='+this.state.userGroup)
                .then((data) =>{
                    //generate needed arrays
                    let result_arr = [],
                        i = 0;
                    while (i < 50) {
                        i++;

                        // let { photo: {src,src_big} } = data.response[i++].attachment.photo;
                        let { attachment, likes, comments } = data.response[i++];

                        attachment = attachment[attachment.type];
                        if(typeof attachment === undefined){
                            console.log('sdsds');
                        }

                        result_arr[result_arr.length] = {attachment,likes,comments};
                        // console.log(result_arr);
                        console.log(i++);
                    }
                    console.log(result_arr);
                    console.log(data.response);
                    this.setState({
                        // id_articles: data.response[index].id,
                        articles: result_arr
                    });
                });


Зачем надо - у vk жутко кривое API одни различия наименований картинок чего стоят(тут хотябы NULL не страшно), но вот неверный тип приводит к undefined всё обрывается
например здесь:
{
"id": 393,
"from_id": 7832775,
"to_id": 7832775,
"date": 1494069770,
"post_type": "copy",
"text": "Спасатели Малибу. Правдивая версия",
"copy_post_date": 1494053105,
"copy_post_type": "post",
"copy_owner_id": -42510378,
"copy_post_id": 170500,
"attachment": {
"type": "doc",
"doc": {
"did": 445046357,
"owner_id": 86240998,
"title": "vk.com/gif_fak",
"size": 5003294,
"ext": "gif",
"url": "httpdf&dl=GA:1518359452:f39677c961b5686268&api=1&no_preview=1",
"date": 1494044240,
"thumb": "httpdfh-3/m_f5889bbd90.jpg",
"thumb_s": "https://d0363/d7/-3/s_f5889bbd90.jpg",f
"access_key": "3e7f03e5983003a019"
}
},
"attachments": [
{
"type": "doc",
"doc": {
"did": 445046357,
"owner_id": 86240998,
"title": "vk.com/gif_fak",
"size": 5003294,
"ext": "gif",
"url": "https://vk.cd90e760488c06c&dl=GA:1518359452:f39677c961b5686268&api=1&no_preview=1",
"date": 1494044240,
"thumb": "https://sun9sd9bbd90.jpg",
"thumb_s": "https://sunsd889bbd90.jpg",
"access_key": "3e7f03e5983003a019"
}
}
],
"comments": {
"count": 0
},
"likes": {
"count": 1
},
"reposts": {
"count": 0
}
},


Вместо type: photo type = doc и т.д. Хотя по сутя таже картинка, в общем api контакта сплошное разочарование.
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
KUPIBILET.RU Санкт-Петербург
от 100 000 до 130 000 руб.
HTML Academy Москва
от 85 000 до 100 000 руб.