Что за promise используется в fetch?

210
20 января 2018, 02:23
fetch('/article/fetch/user.json')
  .then(function(response) {
    alert(response.headers.get('Content-Type')); // application/json; charset=utf-8
    alert(response.status); // 200
    return response.json();
  })
  .then(function(user) {
    alert(user.name); // iliakan
  })
  .catch(alert);

А что это за 2 then используется в promise? Нам на курсах только с одним показывали, две функции внутри resolve reject

Answer 1

Функция fetch возвращает уже сформированный объект Promise.

Далее, в примере, у результата вызова функции fetch вызывается метод then. Результат вызова then так же является новым объектом Promise. У которого опять вызывается его метод then.

Таким образом формируется цепочка вызовов, позволяющая последовательно выполнять асинхронные функции.

Функции resolve и reject, вероятно, в данном случае имелись, как параметры функции передающейся в конструктор Promise

new Promise(function(resolve, reject){...});

Так как в данном случае создание объекта Promise скрыто внутри вызова функции fetch эти функции не используются напрямую.

READ ALSO
Kак проверить результаты вычисления? [требует правки]

Kак проверить результаты вычисления? [требует правки]

Kак проверить результаты вычисления 04 + 0

284
js, ссылки, работа с данными

js, ссылки, работа с данными

Делая работу, я столкнулся с тем, что я не знаю можно ли при переходе на страничку передать передать некоторые данные для другого js файла

167
Форматирование чисел в JS. 01 вместо 1

Форматирование чисел в JS. 01 вместо 1

Нужна помощь, в cursera задание по js, нужно чтобы выводилось корректное время, при добавлении интервала

165
Javascript плагин Monaco Editor

Javascript плагин Monaco Editor

Данный плагин: https://microsoftgithub

157