LINUX.ORG.RU

История изменений

Исправление Y, (текущая версия) :

А что, если reject необходимо сделать из какого-то другого контекста, в коллбеке от какой-то асинхронной функции?

Затем, что она передаётся в ближайший reject.

Также, как и любая выброшенная (throw) ошибка.

Ну генерируй, просто это уже не будет в стиле Promise имхо.

Нет ничего плохого, чтобы выбрасывать ошибки внутри промисов вместо вызова reject, это часть спецификации Promise.

Точно также, как вместо resolve(data) можно писать return data; и оно упадёт в следующий then(function(data) {...}).

Кстати, с AJAX'ом хороший пример, только неполный, ответ от сервера придёт ведь уже после завершения метода, в котором создаётся Promise и производится запрос, в коллбеке с ответом только reject/resolve'ом справиться можно.

UPD: идея в том, что reject — функция, её можно передать в какой-нибудь внешний код или вызвать в асинхронном коллбеке, передав через замыкание. То есть, вызвать уже после завершения функции, в которой создаётся Promise (когда throw уже делать бесполезно).

Исправление Y, :

А что, если reject необходимо сделать из какого-то другого контекста, в коллбеке от какой-то асинхронной функции?

Затем, что она передаётся в ближайший reject.

Также, как и любая выброшенная (throw) ошибка.

Ну генерируй, просто это уже не будет в стиле Promise имхо.

Нет ничего плохого, чтобы выбрасывать ошибки внутри промисов вместо вызова reject, это часть спецификации Promise.

Точно также, как вместо resolve(data) можно писать return data; и оно упадёт в следующий then(function(data) {...}).

Кстати, с AJAX'ом хороший пример, только неполный, ответ от сервера придёт ведь уже после завершения метода, в котором создаётся Promise и производится запрос, в коллбеке с ответом только reject/resolve'ом справиться можно.

UPD: идея в том, что reject — функция, её можно передать в какой-нибудь внешний код или вызвать в асинхронном коллбеке, передав через замыкание. То есть, вызвать уже после завершения функции, в которой создаётся Promise (когда throw уже делать бесполезно).

Исправление Y, :

А что, если reject необходимо сделать из какого-то другого контекста, в коллбеке от какой-то асинхронной функции?

Затем, что она передаётся в ближайший reject.

Также, как и любая выброшенная (throw) ошибка.

Ну генерируй, просто это уже не будет в стиле Promise имхо.

Нет ничего плохого, чтобы выбрасывать ошибки внутри промисов вместо вызова reject, это часть спецификации Promise.

UPD: идея в том, что reject — функция, её можно передать в какой-нибудь внешний код или вызвать в асинхронном коллбеке, передав через замыкание. То есть, вызвать уже после завершения функции, в которой создаётся Promise (когда throw уже делать бесполезно).

Исправление Y, :

А что, если reject необходимо сделать из какого-то другого контекста, в коллбеке от какой-то асинхронной функции?

Затем, что она передаётся в ближайший reject.

Также, как и любая выброшенная (throw) ошибка.

UPD: идея в том, что reject — функция, её можно передать в какой-нибудь внешний код или вызвать в асинхронном коллбеке, передав через замыкание. То есть, вызвать уже после завершения функции, в которой создаётся Promise (когда throw уже делать бесполезно).

Исправление Y, :

А что, если reject необходимо сделать из какого-то другого контекста, в коллбеке от какой-то асинхронной функции?

Затем, что она передаётся в ближайший reject.

Также, как и любая выброшенная (throw) ошибка.

UPD: идея в том, что reject — функция, её можно передать в какой-нибудь другой код или вызвать в асинхронном коллбеке, передав через замыкание. То есть, вызвать уже после завершения функции, в которой создаётся Promise (когда throw уже делать бесполезно).

Исправление Y, :

А что, если reject необходимо сделать из какого-то другого контекста, в коллбеке от какой-то асинхронной функции?

Затем, что она передаётся в ближайший reject.

Также, как и любая выброшенная (throw) ошибка.

UPD: идея в том, что reject — функция, её можно передать в какой-нибудь другой код или вызвать в асинхронном коллбеке через замыкание. То есть, вызвать уже после завершения функции, в которой создаётся Promise (когда throw уже делать бесполезно).

Исправление Y, :

А что, если reject необходимо сделать из какого-то другого контекста, в коллбеке от какой-то асинхронной функции?

Затем, что она передаётся в ближайший reject.

Также, как и любая выброшенная (throw) ошибка.

UPD: идея в том, что reject — функция, её можно передать в какой-нибудь другой код или вызвать в асинхронном коллбеке через замыкание. То есть, вызвать уже после завершения функции, в которой создаётся Promise (откуда throw уже делать бесполезно).

Исправление Y, :

А что, если reject необходимо сделать из какого-то другого контекста, в коллбеке от какой-то асинхронной функции?

Затем, что она передаётся в ближайший reject.

Также, как и любая выброшенная ошибка.

UPD: идея в том, что reject — функция, её можно передать в какой-нибудь другой код или вызвать в асинхронном коллбеке через замыкание. То есть, вызвать уже после завершения функции, в которой создаётся Promise (откуда throw уже делать бесполезно).

Исходная версия Y, :

А что, если reject необходимо сделать из какого-то другого контекста, в коллбеке от какой-то асинхронной функции?