We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Метод throw() возобновляет выполнение тела генератора кидая внутри исключение  и возвращает объект со свойствами done и value.

Синтаксис

gen.throw(exception)

Параметры

exception
Исключение, которое будет брошено. Во время отладки бывает полезно сделать его instanceof Error.

Возвращаемое значение

Объект с двумя свойствами:

  • done (boolean)
    • Имеет значение true если iterator прошел конец итерируемой последовательности. В этом случае value опционально определяется выражением return value внутри итератора .
    • Имеет значение false если iterator имеет возможность вернуть следующее значение последовательности. Это равносильно когда свойство done не указано.
  • value - любое JavaScript значение,  возвращенное итератором. Может быть проигнорировано, когда done === true.

Примеры

Использование throw()

В этом примере показан простой генератор и исключение,  которое выбрасывается используя метод throw. Исключение может быть поймано, используя, как обычно, блок try...catch.

function* gen() {
  while(true) {
    try {
       yield 42;
    } catch(e) {
      console.log('Error caught!');
    }
  }
}

var g = gen();
g.next();
// { value: 42, done: false }
g.throw(new Error('Something went wrong'));
// "Error caught!"
// { value: 42, done: false }

Спецификации

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Generator.prototype.throw' в этой спецификации.
Стандарт Initial definition.
ECMAScript Latest Draft (ECMA-262)
Определение 'Generator.prototype.throw' в этой спецификации.
Черновик  

Совместимость браузеров

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Да) 13 26 (26) Нет (Да) 10
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 5.1 (Да) 26.0 (26) ? ? 10

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: deman
Обновлялась последний раз: deman,