Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.06.2016, 09:07
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Blondinka,
JSON структура неправильная. Должно быть так

cityList.json
[
  {"_id":707860,"name":"Hurzuf","country":"UA","coord":{"lon":34.283333,"lat":44.549999}},
  {"_id":519188,"name":"Novinki","country":"RU","coord":{"lon":37.666668,"lat":55.683334}},
  {"_id":1283378,"name":"Gorkhā","country":"NP","coord":{"lon":84.633331,"lat":28}},
  {"_id":1270260,"name":"State of Haryāna","country":"IN","coord":{"lon":76,"lat":29}},
  {"_id":708546,"name":"Holubynka","country":"UA","coord":{"lon":33.900002,"lat":44.599998}},
  {"_id":1283710,"name":"Bāgmatī Zone","country":"NP","coord":{"lon":85.416664,"lat":28}},
  {"_id":529334,"name":"Mar’ina Roshcha","country":"RU","coord":{"lon":37.611111,"lat":55.796391}}
]


.js
function get(url) {
    return new Promise(function(resolve, reject) {
        var req = new XMLHttpRequest();
        req.open('GET', url);

        req.onload = function() {
            if (req.status == 200) {
                resolve(JSON.parse(req.response));
            }
            else {
                reject(Error(req.statusText));
            }
        };
        req.onerror = function() {
            reject(Error("Сетевая ошибка"));
        };
        req.send();
    });
}

get('cityList.json').then(function(response) {
    "use strict";
    let findName = 'Hurzuf',
        idx = response.findIndex(obj => Object.is(obj.name, findName));

    alert(idx);
}, function(error) {
    console.error("Не удалось выполнить!", error);
});
Ответить с цитированием
  #12 (permalink)  
Старый 07.06.2016, 09:15
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от Blondinka Посмотреть сообщение
Не спрашивала про fetch(), потому что не получилось с ним, вообще, ничего распарсить (из того же .json-файла), с promise чуть лучше.
Странно, что не получилось. С подключенной библиотекой co, код выглядит намного красивее и меньше. Просто сравни

<!-- в html подключаем библиотеку co -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/co/4.1.0/index.min.js"></script>

/* здесь JS код */
co(function* (){
    let responseFetch = yield fetch("cityList.json");

    let response = yield responseFetch.json();

    let findName = 'Hurzuf',
        idx = response.findIndex(obj => Object.is(obj.name, findName));

    alert(idx);
}).catch(err => alert(err));
Ответить с цитированием
  #13 (permalink)  
Старый 07.06.2016, 09:37
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от Rise Посмотреть сообщение
А что это за библиотека?
https://github.com/tj/co
https://learn.javascript.ru/generator#библиотека-co
Ответить с цитированием
  #14 (permalink)  
Старый 07.06.2016, 13:01
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

destus,
огромное спасибо Буду разбираться дальше.
Ответить с цитированием
  #15 (permalink)  
Старый 10.06.2016, 22:08
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

fetch() работает с кроссдоменными запросами?
Ответить с цитированием
  #16 (permalink)  
Старый 10.06.2016, 22:27
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Тут все написано https://habrahabr.ru/post/252941/
Ответить с цитированием
  #17 (permalink)  
Старый 10.06.2016, 22:55
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

destus,
спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подгруздка внешнего контента в блок и снова подгрузка arahmanov Элементы интерфейса 2 19.01.2014 14:31
Динамическая подгрузка контента при прокрутке assd18 AJAX и COMET 11 14.03.2013 14:05
Подгрузка контента в div Platypus Общие вопросы Javascript 10 09.03.2013 12:27
Подгрузка контента, без перезагрузки панели cyber_bober Элементы интерфейса 2 14.12.2012 13:37
Подгрузка контента Контакта beerdy AJAX и COMET 5 25.10.2011 10:24