From 0d2f5f0e69eda5697000ca8bff402cf92725f432 Mon Sep 17 00:00:00 2001
From: Alexey Pyltsyn {{jsxref("Promise")}} объект наследованный от {{jsxref("Promise.prototype")}}. Вы можете использовать прототип конструктора чтобы добавлять свойства или методы во все объекты обещаний. {{jsxref("Promise")}} объект наследованный от {{jsxref("Promise.prototype")}}. Вы можете использовать прототип конструктора чтобы добавлять свойства или методы во все объекты промисов. A {{jsxref("Promise")}} - это {{Glossary("Object")}}, возвращаемый {{Glossary("function")}}, которая ещё не завершила свою работу. Promise буквально представляет собой 'обещание' функции в итоге вернуть результат через объект промиса. {{jsxref("Promise")}} - это {{Glossary("Object")}}, возвращаемый {{Glossary("function")}}, которая ещё не завершила свою работу. Промис буквально представляет собой "обещание", сделанное функцией, которая через объект промиса вернет результат. Когда вызванная функция {{Glossary("asynchronous", "asynchronously")}} завершает работу, вызывается функция объекта промиса, называемая обработчиком решения (или выполнения, или завершения) чтобы исходный объект вызова знал, что задача выполнена В каждом примере функция записывает время начала исполнения и сколько времени понадобилось на исполнение В каждом примере функция записывает время начала исполнения и сколько времени понадобилось на исполнение Это происходит потому что вы не знаете сколько времени займёт загрузка картинки, следовательно, когда вы начнёте выполнять вторую строку кода, сгенерируется ошибка (возможно, периодически, возможно, каждый раз), потому что response ещё не доступен. Вместо этого, ваш код должен дождаться возвращения response до того, как попытается выполнить дальнейшие инструкции. Есть два типа стиля асинхронного кода, с которыми вы столкнётесь в коде JavaScript, старый метод — callbacks (колбэки) и более новый — promise (промисы, обещания). В следующих разделах мы познакомимся с каждым из них. Есть два типа стиля асинхронного кода, с которыми вы столкнётесь в коде JavaScript, старый метод — колбэки (callbacks) и более новый — промисы (promises). В следующих разделах мы познакомимся с каждым из них. Примечание: вы можете посмотреть законченную версию на github (посмотрите исходный код и запустите пример). В примере видно, как В примере видно, как Может понадобиться много времени, чтобы привыкнуть к данной концепции; это немного напоминает {{interwiki("wikipedia", "Кот Шрёдингера")}} в действии. Ни один из возможных результатов ещё не произошёл, поэтому операция fetch в настоящее время ожидает результата. Далее у нас есть три блока кода следующих сразу после Первое, что нужно заметить, это дополнительный кусок кода, расположенный в основном JavaScript файле (см. index.js). Первое,что мы делаем, это проверка на то, что Первое, что нужно заметить, это дополнительный кусок кода, расположенный в основном JavaScript файле (см. index.js). Первое,что мы делаем, это проверка на то, что Внутри обработчика Здесь мы видим Cache API в действии. Мы используем метод {{domxref("CacheStorage.open()")}} для открытия нового объекта кеша, в котором ответы могут быть сохранены (похоже на объект хранилища IndexedDB). Обещание выполнится с объектом {{domxref("Cache")}}, представляющим собой кеш Здесь мы видим Cache API в действии. Мы используем метод {{domxref("CacheStorage.open()")}} для открытия нового объекта кеша, в котором ответы могут быть сохранены (похоже на объект хранилища IndexedDB). Промис выполнится с объектом {{domxref("Cache")}}, представляющим собой кеш Внутри обработчика, мы сначала выводим в консоль URL запрашиваемого ресурса. Затем отдаём особый ответ на запрос, используя метод {{domxref("FetchEvent.respondWith()")}}. Внутри блока мы используем {{domxref("CacheStorage.match()")}} чтобы проверить, можно ли найти соответствующий запрос (т.е. совпадение по URL) в кеше. Обещание возвращает найденный ответ или Внутри блока мы используем {{domxref("CacheStorage.match()")}} чтобы проверить, можно ли найти соответствующий запрос (т.е. совпадение по URL) в кеше. Промис возвращает найденный ответ или Если совпадение нашлось, то просто возвращаем его как особый ответ. В противном случае, используем fetch() для запроса ресурса из сети. Прежде всего, мы вызываем метод {{domxref("WorkerOrWindowGlobalScope.fetch()", "fetch()")}}, передавая ему URL-адрес ресурса, который мы хотим получить. Это современный эквивалент {{domxref("XMLHttpRequest.open", "request.open()")}} в XHR, плюс вам не нужен эквивалент После этого вы можете увидеть метод {{jsxref("Promise.then", ".then()")}}, прикреплённый в конец После этого вы можете увидеть метод {{jsxref("Promise.then", ".then()")}}, прикреплённый в конец Эта функция автоматически передаёт ответ от сервера в качестве параметра, когда обещает Вы увидите, что Вы увидите, что Внутри функции внутреннего обещания мы делаем то же самое, что и в версии XHR, - устанавливаем текстовое содержимое {{htmlelement("pre")}} в текстовое значение. Внутри функции внутреннего промиса мы делаем то же самое, что и в версии XHR, - устанавливаем текстовое содержимое {{htmlelement("pre")}} в текстовое значение. Обещания немного запутывают первый раз, когда вы их встречаете, но не беспокойтесь об этом слишком долго. Через некоторое время вы привыкнете к ним, особенно, когда вы узнаете больше о современных JavaScript-API. Большинство из них в большей степени основаны на обещаниях. Промисы немного запутывают первый раз, когда вы их встречаете, но не беспокойтесь об этом слишком долго. Через некоторое время вы привыкнете к ним, особенно, когда вы узнаете больше о современных JavaScript-API. Большинство из них в большей степени основаны на промисах. Давайте посмотрим на структуру обещаний сверху, чтобы увидеть, можем ли мы ещё немного понять это: Давайте посмотрим на структуру промисов сверху, чтобы увидеть, можем ли мы ещё немного понять это: В первой строке говорится: «Получить ресурс, расположенный по адресу url» В первой строке говорится: «Получить ресурс, расположенный по адресу url» Фактически, функция, переданная в Фактически, функция, переданная в Поскольку метод Поскольку метод Объект ответа имеет метод {{domxref("Body.text", "text()")}}, который берёт необработанные данные, содержащиеся в теле ответа, и превращает его в обычный текст, который является форматом, который мы хотим в нем А также возвращает обещание (которое разрешает полученную текстовую строку), поэтому здесь мы используем другой {{jsxref("Promise.then", ".then()")}}, внутри которого мы определяем другую функцию, которая диктует что мы хотим сделать с этой текстовой строкой. Мы просто устанавливаем свойство Объект ответа имеет метод {{domxref("Body.text", "text()")}}, который берёт необработанные данные, содержащиеся в теле ответа, и превращает его в обычный текст, который является форматом, который мы хотим в нем А также возвращает промис (который разрешает полученную текстовую строку), поэтому здесь мы используем другой {{jsxref("Promise.then", ".then()")}}, внутри которого мы определяем другую функцию, которая диктует что мы хотим сделать с этой текстовой строкой. Мы просто устанавливаем свойство Также стоит отметить, что вы можете напрямую связывать несколько блоков обещаний ( Также стоит отметить, что вы можете напрямую связывать несколько блоков промисов ( Следующий блок делает то же самое, что и наш оригинальный пример, но написан в другом стиле: Многие разработчики любят этот стиль больше, поскольку он более плоский и, возможно, легче читать для более длинных цепочек обещаний - каждое последующее обещание приходит после предыдущего, а не внутри предыдущего (что может стать громоздким). Единственное отличие состоит в том, что мы должны были включить оператор Многие разработчики любят этот стиль больше, поскольку он более плоский и, возможно, легче читать для более длинных цепочек промисов - каждое последующее промис приходит после предыдущего, а не внутри предыдущего (что может стать громоздким). Единственное отличие состоит в том, что мы должны были включить оператор Это похоже на то, что мы видели раньше, за исключением того, что второе обещание находится в условном выражении. В этом случае мы проверяем, был ли возвращённый ответ успешным - свойство {{domxref("response.ok")}} содержит логическое значение, которое Это похоже на то, что мы видели раньше, за исключением того, что второй промис находится в условном выражении. В этом случае мы проверяем, был ли возвращённый ответ успешным - свойство {{domxref("response.ok")}} содержит логическое значение, которое Если ответ был успешным, мы выполняем второе обещание - на этот раз мы используем {{domxref("Body.json", "json()")}}, а не {{domxref("Body.text", "text()")}}, так как мы хотим вернуть наш ответ как структурированные данные JSON, а не обычный текст. Если ответ был успешным, мы выполняем второй промис - на этот раз мы используем {{domxref("Body.json", "json()")}}, а не {{domxref("Body.text", "text()")}}, так как мы хотим вернуть наш ответ как структурированные данные JSON, а не обычный текст. Если ответ не увенчался успехом, мы выводим сообщение об ошибке в консоль, в котором сообщается о сбое сетевого запроса, который сообщает о статусе сети и описательном сообщении ответа (содержащемся в {{domxref("response.status")}} и {{domxref("response.statusText")}}, соответственно). Конечно, полный веб-сайт будет обрабатывать эту ошибку более грациозно, отображая сообщение на экране пользователя и, возможно, предлагая варианты для исправления ситуации. Если первая строка ещё не вернула результат, вторая вызовет ошибку из-за того, что данные геолокации ещё не стали доступны. По этой причине, API, использующие асинхронные операции, разрабатываются с использованием {{glossary("callback function")}}, или более современной системы Обещаний(Promises), которая появилась в ECMAScript 6 и широко используются в новых API. Если первая строка ещё не вернула результат, вторая вызовет ошибку из-за того, что данные геолокации ещё не стали доступны. По этой причине, API, использующие асинхронные операции, разрабатываются с использованием {{glossary("callback function")}}, или более современной системы промисов, которая появилась в ECMAScript 6 и широко используются в новых API. Мы совмещаем API Геолокации со сторонним API - Google Maps API, который используем для того, чтобы отметить расположение, возвращаемое Код контроллера для некоторых страниц библиотеки будет зависеть от результатов многих асинхронных запросов, которые должны выполняться в определённом порядке или параллельно. Для того, чтобы управлять потоком выполнения, и выводить страницы, когда получена вся необходимая информация, будет использован async - известный модуль node. Note: В JavaScript существует много других способов управления асинхронным поведением и потоком выполнения, включая такой относительно новый элемент языка JacaScript как Promises (обещания, промисы). Примечание: В JavaScript существует много других способов управления асинхронным поведением и потоком выполнения, включая такой относительно новый элемент языка JavaScript как промисы (promises). Модуль Async имеет массу полезных методов (см. документацию the documentation). Вот некоторые наиболее важные функции: Примечание: Когда Примечание: Когда Вы можете найти полный работающий пример на GitHub — см. abort-api (увидеть работу в живую). Примечание: Когда Примечание: Когда Вы можете найти полный рабочий пример на GitHub — см. abort-api (см. как он работает в живую). Примечание: Когда Примечание: Когда Вы можете найти полный рабочий пример на GitHub — см. abort-api (см. как он работает в живую). Примечание: Когда Примечание: Когда Текущая версия Firefox отклоняет обещание с Текущая версия Firefox отклоняет промис с Вы можете найти полный рабочий пример на GitHub — см. abort-api (см. как он работает в живую). Метод Метод Примечание: Это в основном относится к service workers. Если пользователь отправляет форму а service worker перехватывает запрос, можно, например, вызвать Метод Метод Promise (обещание), который, когда ответ будет получен, вызовет колбэк с результатом парсинга тела ответа в JSON объект. Этим может быть что угодно, что может быть представлено как JSON объект — объект, массив, строка, число... Промис, который, когда ответ будет получен, вызовет колбэк с результатом парсинга тела ответа в JSON объект. Этим может быть что угодно, что может быть представлено как JSON объект — объект, массив, строка, число... {{APIRef("Service Workers API")}} Метод Метод События События События События Метод Метод Примечание: Поведение описанное в параграфе выше, было исправлено в Firefix 43 (смотрите {{bug(1180274)}}). Обещание, возвращённое из Промис, возвращённый из If permission is granted, a Это устаревший метод. Вместо этого используйте более новую версию {{domxref ("MediaDevices.getUserMedia", "navigator.mediaDevices.getUserMedia ()")}}. Хотя технически не рекомендуется, эта старая версия колбэка помечена как таковая, поскольку спецификация настоятельно рекомендует использовать более новую версию, возвращающую обещание. Это устаревший метод. Вместо этого используйте более новую версию {{domxref ("MediaDevices.getUserMedia", "navigator.mediaDevices.getUserMedia ()")}}. Хотя технически не рекомендуется, эта старая версия колбэка помечена как таковая, поскольку спецификация настоятельно рекомендует использовать более новую версию, возвращающую промис. Промисы — отличный механизм для запуска асинхронных операций, которые могут успешно зависеть друг от друга. Промисы имеют большое значение в работе сервис-воркеров. Примечание: CSS Animations и Transitions (переходы) имеют свои события и они также могут быть воспроизведены и в Web Animations API: Нравится перспектива? Web Animations API также даёт две перспективы: Эти обещания не полностью поддерживаются в настоящий момент. Эти промисы не полностью поддерживаются в настоящий момент. {{domxref("WindowOrWorkerGlobalScope.fetch","Fetch()")}} promise (обещание) завершается {{jsxref("TypeError")}}, если возникает сетевая ошибка, хотя обычно это означает проблему с доступами или аналогичную ей. Для успешного завершения Промис {{domxref("WindowOrWorkerGlobalScope.fetch","Fetch()")}} завершается {{jsxref("TypeError")}}, если возникает сетевая ошибка, хотя обычно это означает проблему с доступами или аналогичную ей. Для успешного завершения Метод {{jsSidebar("Руководство по JavaScript")}}{{PreviousNext("Web/JavaScript/Guide/Details_of_the_Object_Model", "Web/JavaScript/Guide/Iterators_and_Generators")}} {{jsxref("Promise")}} (промис, англ. "обещание") - это объект, представляющий результат успешного или неудачного завершения асинхронной операции. Так как большинство людей пользуются уже созданными промисами, это руководство начнём с объяснения использования вернувшихся промисов до объяснения принципов создания. {{jsxref("Promise")}} (промис) - это объект, представляющий результат успешного или неудачного завершения асинхронной операции. Так как большинство людей пользуются уже созданными промисами, это руководство начнём с объяснения использования вернувшихся промисов до объяснения принципов создания. В сущности, промис - это возвращаемый объект, в который вы записываете два колбэка вместо того, чтобы передать их функции. В этом разделе собраны частые ошибки, возникающие при создании цепочек обещаний. Несколько таких ошибок можно увидеть в следующем примере: В этом разделе собраны частые ошибки, возникающие при создании цепочек промисов. Несколько таких ошибок можно увидеть в следующем примере: Первая ошибка это неправильно сцепить вещи между собой. Такое происходит когда мы создаём промис но забываем вернуть его. Как следствие, цепочка сломана, но правильнее было бы сказать что теперь у нас есть две независимые цепочки, соревнующиеся за право разрешится первой. Это означает Вторая ошибка это излишняя вложенность, включая первую ошибку. Вложенность также ограничивает область видимости внутренних обработчиков ошибок, если это не то чего хотел разработчик, это может привести к необработанным ошибкам. Примером этого является пример как не нужно создавать обещания, который комбинирует вложенность с чрезмерным использованием конструктора обещаний для оборачивания кода который уже использует промисы. Вторая ошибка это излишняя вложенность, включая первую ошибку. Вложенность также ограничивает область видимости внутренних обработчиков ошибок, если это не то чего хотел разработчик, это может привести к необработанным ошибкам. Примером этого является пример как не нужно создавать промисы, который комбинирует вложенность с чрезмерным использованием конструктора промисов для оборачивания кода который уже использует промисы. Третья ошибка это забыть закончить цепочку ключевым словом Третья ошибка это забыть закончить цепочку ключевым словом Хорошим примером является всегда либо возвращать либо заканчивать цепочки обещаний, и как только вы получаете новое обещание, возвращайте его сразу же, чтобы не усложнять код излишней вложенностью: Хорошим примером является всегда либо возвращать либо заканчивать цепочки промисов, и как только вы получаете новый промис, возвращайте его сразу же, чтобы не усложнять код излишней вложенностью: В случае, когда возвращается незамедлительно разрешённое или незамедлительно отклонённое Обещание, вам не нужно создавать новое Обещание new Promise(...) и работать с ним. В случае, когда возвращается незамедлительно разрешённый или незамедлительно отклонённый промис, вам не нужно создавать новый промис new Promise(...) и работать с ним. Это неправильно (конструктор Обещания вызывается неправильно) и будет вызывать исключение Это неправильно (конструктор Promise вызывается неправильно) и будет вызывать исключение Метод Метод {{jsxref("Promise")}}, который будет выполнен когда будут выполнены все обещания, переданные в виде перечисляемого аргумента, или отклонён, если будет отклонено хоть одно из переданных обещаний. {{jsxref("Promise")}}, который будет выполнен когда будут выполнены все промисы, переданные в виде перечисляемого аргумента, или отклонён, если будет отклонено хоть одно из переданных промисов. Promise.all возвращает массив значений от всех обещаний, которые были ему переданы. Возвращаемый массив значений сохраняет порядок оригинального перечисляемого объекта, но не порядок выполнения обещаний. Promise.all возвращает массив значений от всех промисов, которые были ему переданы. Возвращаемый массив значений сохраняет порядок оригинального перечисляемого объекта, но не порядок выполнения промисов. Если одно из переданных обещаний будет отклонено, Если одно из переданных промисов будет отклонено, Promise.all ждёт выполнения всех обещаний (или первого метода Promise.all ждёт выполнения всех промисов (или первого метода Warning! The Метод полезен, когда нужно вернуть первое исполненное "обещание". После того как одно из "обещаний" будет исполнено, метод не будет дожидаться исполнения остальных. В отличие от {{JSxRef("Promise.all()")}}, который содержит массив(Array) значений исполненных обещаний, Метод полезен, когда нужно вернуть первый исполненный промис. После того как один из промисов будет исполнен, метод не будет дожидаться исполнения остальных. В отличие от {{JSxRef("Promise.all()")}}, который содержит массив(Array) значений исполненных промисов, Если одно из "обещаний" исполнится успешно, возвращённое "обещание" асинхронно исполнится успешно со значением выполненного "обещания", независимо от завершения остальных "обещаний". Если один из промисов исполнится успешно, возвращённый промис асинхронно исполнится успешно со значением выполненного промиса, независимо от завершения остальных промисов. Если все переданные "обещания" будут отклонены(rejected), Если все переданные промисы будут отклонены (rejected), Метод catch() возвращает Метод catch() возвращает промис ( Promise( Обещание ), возвращённое catch (), отклоняется, если onRejected выдаёт ошибку(throw) или возвращает Promise, который был отклонён; В противном случае Promise, возвращаемый catch () имеет статус выполнено (fulfilled) Промис, возвращённый catch (), отклоняется, если onRejected выдаёт ошибку(throw) или возвращает Promise, который был отклонён; В противном случае Promise, возвращаемый catch () имеет статус выполнено (fulfilled) Метод Метод Это позволяет вам избавиться от дубликации кода в обработчиках {{jsxref("Promise.then", "then()")}} и {{jsxref("Promise.catch", "catch()")}}. Объект Объект {{EmbedInteractiveExample("pages/js/promise-constructor.html")}} Интерфейс Интерфейс Чтобы снабдить функцию функциональностью обещаний, нужно просто вернуть в ней объект Чтобы снабдить функцию функциональностью промисов, нужно просто вернуть в ней объект Данный небольшой пример показывает механизм работы с Данный небольшой пример показывает механизм работы с исполнение промиса протоколируется при помощи продолжения Метод Promise.race(iterable) возвращает выполненное или отклонённое обещание, в зависимости от того, с каким результатом завершится первое из переданных обещаний, со значением или причиной отклонения этого обещания. Метод Promise.race(iterable) возвращает выполненный или отклонённый промис, в зависимости от того, с каким результатом завершится первый из переданных промисов, со значением или причиной отклонения этого промиса. {{EmbedInteractiveExample("pages/js/promise-race.html")}} Выполненный или отклонённый {{jsxref("Promise")}} в зависимости от результата первого завершённого из переданных в итерируемом объекте обещаний. Выполненный или отклонённый {{jsxref("Promise")}} в зависимости от результата первого завершённого из переданных в итерируемом объекте промисов. Метод Метод Метод Метод Так как метод Так как метод Вы также можете соединить одну функцию, имеющую подобную с обещаниями API, с другой функцией. Вы также можете соединить одну функцию, имеющую подобный с промисами API, с другой функцией. Если onFulfilled возвращает обещание, возвращаемое значение может быть выполнено (resolved) / отклонено (rejected) обещанием. Если onFulfilled возвращает промис, возвращаемое значение может быть выполнено (resolved) / отклонено (rejected) промисом. Обещание, ( Промис ( Обещание, ( Промис ( Следующий пример (см. Нашу демонстрацию compile-streaming.html на GitHub и view it live) напрямую передаёт модуль .wasm из исходника, затем компилирует его в объект {{jsxref("WebAssembly.Module")}}.Описание
-Свойства
Promise.prototype.constructorМетоды
Спецификация
diff --git a/files/ru/glossary/promise/index.html b/files/ru/glossary/promise/index.html
index 643f180604..82fe225267 100644
--- a/files/ru/glossary/promise/index.html
+++ b/files/ru/glossary/promise/index.html
@@ -7,7 +7,7 @@ tags:
translation_of: Glossary/Promise
original_slug: Словарь/Promise
---
-timeTest() промисов, вычитая время в момент запуска функции из времени в момент разрешения обещаний:timeTest() промисов, вычитая время в момент запуска функции из времени в момент разрешения промисов:let startTime = Date.now();
timeTest().then(() => {
diff --git a/files/ru/learn/javascript/asynchronous/introducing/index.html b/files/ru/learn/javascript/asynchronous/introducing/index.html
index 5783228cff..ddb5901ef2 100644
--- a/files/ru/learn/javascript/asynchronous/introducing/index.html
+++ b/files/ru/learn/javascript/asynchronous/introducing/index.html
@@ -86,7 +86,7 @@ let blob = response.blob();
-Асинхронные колбэки
@@ -161,7 +161,7 @@ gods.forEach(function (eachName, index){
fetch() принимает один параметр — URL ресурса, который нужно получить из сети, — и возвращает промис. Промис или обещание — это объект, представляющий асинхронную операцию, выполненную удачно или неудачно. Он представляет собой как бы промежуточное состояние. По сути, это способ браузера сказать: "я обещаю вернуться к вам с ответом как можно скорее," отсюда и название "обещание."fetch() принимает один параметр — URL ресурса, который нужно получить из сети, — и возвращает промис. Промис — это объект, представляющий асинхронную операцию, выполненную удачно или неудачно. Он представляет собой как бы промежуточное состояние. По сути, это способ браузера сказать: "я обещаю вернуться к вам с ответом как можно скорее", поэтому в дословном переводе "промис" (promise) означает "обещание".fetch():Регистрируем сервис воркер
-serviceWorker доступен в объекте {{domxref("Navigator")}}. Если этот так, тогда мы знаем, что как минимум, базовые функции сервис-воркера доступны. Внутри проверки мы используем метод {{domxref("ServiceWorkerContainer.register()")}} для регистрации сервис-воркера, находящегося в файле sw.js на текущем источнике, таким образом, он может управлять страницами в текущей или внутренних директориях. Когда обещание выполнится, сервис-воркер считается зарегистрированным.serviceWorker доступен в объекте {{domxref("Navigator")}}. Если этот так, тогда мы знаем, что как минимум, базовые функции сервис-воркера доступны. Внутри проверки мы используем метод {{domxref("ServiceWorkerContainer.register()")}} для регистрации сервис-воркера, находящегося в файле sw.js на текущем источнике, таким образом, он может управлять страницами в текущей или внутренних директориях. Когда промис выполнится, сервис-воркер считается зарегистрированным. // Регистрация сервис-воркера для обеспечения доступности сайта в офлайне
@@ -714,7 +714,7 @@ Promise.all([mp4Blob, webmBlob]).then(function(values) {
-install мы используем метод {{domxref("ExtendableEvent.waitUntil()")}}, доступном в объекте события, чтобы сигнализировать, что работа продолжается, и браузер не должен завершать установку, пока все задачи внутри блока не будут выполнены.video-store . Затем мы используем метод {{domxref("Cache.addAll()")}} для получения ресурсов и добавления ответов в кеш.video-store . Затем мы используем метод {{domxref("Cache.addAll()")}} для получения ресурсов и добавления ответов в кеш.self.addEventListener('install', function(e) {
e.waitUntil(
@@ -739,7 +739,7 @@ Promise.all([mp4Blob, webmBlob]).then(function(values) {
undefined, если ничего не нашлось.undefined, если ничего не нашлось..send().fetch() - этот метод является частью {{jsxref("Promise","Promises")}} - современная функция JavaScript для выполнения асинхронных операций. fetch() возвращает обещание, которое разрешает ответ, отправленный обратно с сервера, - мы используем .then() для запуска некоторого последующего кода после того, как обещание будет разрешено, что является функцией, которую мы определили внутри неё. Это эквивалент обработчика события onload в XHR-версии.fetch() - этот метод является частью {{jsxref("Promise","Promises")}} - современная функция JavaScript для выполнения асинхронных операций. fetch() возвращает промис, который разрешает ответ, отправленный обратно с сервера, - мы используем .then() для запуска некоторого последующего кода после того, как промис будет разрешено, что является функцией, которую мы определили внутри неё. Это эквивалент обработчика события onload в XHR-версии.fetch(). Внутри функции мы берём ответ и запускаем его метод {{domxref("Body.text", "text()")}}, который в основном возвращает ответ как необработанный текст. Это эквивалент request.responseType = 'text' в версии XHR.text()также возвращает обещание, поэтому мы привязываем к нему другой .then(), внутри которого мы определяем функцию для получения необработанного текста, который обещает решение text().text() также возвращает промис, поэтому мы привязываем к нему другой .then(), внутри которого мы определяем функцию для получения необработанного текста, который выполняет text().Помимо обещаний
+Помимо промисов
-fetch(url).then(function(response) {
response.text().then(function(text) {
@@ -212,9 +212,9 @@ request.send();
});
});(fetch(url)) и «затем запустить указанную функцию, когда обещание будет разрешено» (.then(function() { ... })). «Resolve» означает «завершить выполнение указанной операции в какой-то момент в будущем». Указанная операция в этом случае заключается в извлечении ресурса с указанного URL (с использованием HTTP-запроса) и возврата ответа для нас, чтобы что-то сделать.(fetch(url)) и «затем запустить указанную функцию, когда промис будет разрешено» (.then(function() { ... })). «Resolve» означает «завершить выполнение указанной операции в какой-то момент в будущем». Указанная операция в этом случае заключается в извлечении ресурса с указанного URL (с использованием HTTP-запроса) и возврата ответа для нас, чтобы что-то сделать.then(), представляет собой кусок кода, который не запускается немедленно - вместо этого он будет работать в какой-то момент в будущем, когда ответ будет возвращён. Обратите внимание, что вы также можете сохранить своё обещание в переменной и цепочку {{jsxref("Promise.then", ".then()")}} вместо этого. Ниже код будет делать то же самое:then(), представляет собой кусок кода, который не запускается немедленно - вместо этого он будет работать в какой-то момент в будущем, когда ответ будет возвращён. Обратите внимание, что вы также можете сохранить своё промис в переменной и цепочку {{jsxref("Promise.then", ".then()")}} вместо этого. Ниже код будет делать то же самое:var myFetch = fetch(url);
@@ -224,7 +224,7 @@ myFetch.then(function(response) {
});
});
-fetch() возвращает обещание, которое разрешает HTTP-ответ, любая функция, которую вы определяете внутри .then(), прикованная к концу, будет автоматически передаваться как параметр. Вы можете вызвать параметр, который вам нравится - приведённый ниже пример будет работать:fetch() возвращает промис, который разрешает HTTP-ответ, любая функция, которую вы определяете внутри .then(), прикованная к концу, будет автоматически передаваться как параметр. Вы можете вызвать параметр, который вам нравится - приведённый ниже пример будет работать:fetch(url).then(function(dogBiscuits) {
dogBiscuits.text().then(function(text) {
@@ -242,9 +242,9 @@ myFetch.then(function(response) {
});
}
-textContent элемента {{htmlelement("pre")}} нашего стихотворения равным текстовой строке, так что это получается довольно просто.textContent элемента {{htmlelement("pre")}} нашего стихотворения равным текстовой строке, так что это получается довольно просто..then(), но есть и другие типы) на конце друг друга, передавая результат каждого блока следующему блоку по мере продвижения по цепочке , Это делает обещания очень мощными..then(), но есть и другие типы) на конце друг друга, передавая результат каждого блока следующему блоку по мере продвижения по цепочке , Это делает промисы очень мощными.return перед response.text(), чтобы заставить его передать результат в следующую ссылку в цепочке.return перед response.text(), чтобы заставить его передать результат в следующую ссылку в цепочке.Какой механизм следует использовать?
@@ -289,9 +289,9 @@ myFetch.then(function(response) {
}
});
-true, если ответ был в порядке (например, 200 meaning "OK") или false, если он не увенчался успехом.true, если ответ был в порядке (например, 200 meaning "OK") или false, если он не увенчался успехом.
-
diff --git a/files/ru/learn/javascript/client-side_web_apis/introduction/index.html b/files/ru/learn/javascript/client-side_web_apis/introduction/index.html
index 0645247fd8..5e2895d615 100644
--- a/files/ru/learn/javascript/client-side_web_apis/introduction/index.html
+++ b/files/ru/learn/javascript/client-side_web_apis/introduction/index.html
@@ -153,7 +153,7 @@ myGeo.getCurrentPosition(function(position) { ... });
request.response после того, как событие load запущено, а не в обещании then().request.response после того, как событие load запущено, а не в промисе then().response.ok в XHR следует проверить, является ли {{domxref("XMLHttpRequest.status","request.status")}} равным 200 или если {{domxref("XMLHttpRequest.readyState","request.readyState")}} равно 4.request (XHR), а не в объекте response.var position = navigator.geolocation.getCurrentPosition();
var myLatitude = position.coords.latitude;
-getCurrentPosition() , на Google Map. Чтобы Google Maps API стал доступен на нашей странице, мы включаем его в HTML документ:WebRTC
-
модули JavaScript код
-
Смотрите также
diff --git a/files/ru/web/api/abortcontroller/abort/index.html b/files/ru/web/api/abortcontroller/abort/index.html
index 3133be11ae..213e422257 100644
--- a/files/ru/web/api/abortcontroller/abort/index.html
+++ b/files/ru/web/api/abortcontroller/abort/index.html
@@ -54,7 +54,7 @@ function fetchVideo() {
}
abort() вызывается, fetch() обещание отклоняется с AbortError.abort() вызывается, fetch() промис отклоняется с AbortError.abort() вызывается, fetch() обещание отклоняется с AbortError.abort() вызывается, fetch() промис отклоняется с AbortError.abort() вызывается, fetch() обещание отклоняется с AbortError.abort() вызывается, промис fetch() отклоняется с AbortError.abort() вызывается, fetch() обещание отклоняется с AbortError.abort() вызывается, fetch() промис отклоняется с AbortError.DOMExceptionDOMException
@@ -42,7 +42,7 @@ translation_of: Web/API/Animation
diff --git a/files/ru/web/api/body/formdata/index.html b/files/ru/web/api/body/formdata/index.html
index 5b80766e66..329f8b194b 100644
--- a/files/ru/web/api/body/formdata/index.html
+++ b/files/ru/web/api/body/formdata/index.html
@@ -5,7 +5,7 @@ translation_of: Web/API/Body/formData
---
formData() из {{domxref("Body")}} принимает поток ответа {{domxref("Response")}} и считывает его до завершения. Он возвращает обещание, которое разрешается с помощью объекта {{domxref("FormData")}}.formData() из {{domxref("Body")}} принимает поток ответа {{domxref("Response")}} и считывает его до завершения. Он возвращает промис, который разрешается с помощью объекта {{domxref("FormData")}}.formData() чтобы получить набор данных в формате ключ-значение, изменить некоторые поля, а затем отправить форму на сервер, или использовать её локально.json() , определён на миксине {{domxref("Body")}}, который включён в объектах Request и Response, принимает и читает тело {{domxref("Response")}} stream. Возвращает promise (обещание), который, когда ответ будет получен, вызовет колбэк с результатом парсинга тела ответа в {{jsxref("JSON")}} объект.json() , определён на миксине {{domxref("Body")}}, который включён в объектах Request и Response, принимает и читает тело {{domxref("Response")}} stream. Возвращает промис, который, когда ответ будет получен, вызовет колбэк с результатом парсинга тела ответа в {{jsxref("JSON")}} объект.Синтаксис
@@ -23,7 +23,7 @@ translation_of: Web/API/Body/json
Возвращает
-Пример
diff --git a/files/ru/web/api/extendableevent/waituntil/index.html b/files/ru/web/api/extendableevent/waituntil/index.html
index 771a71bed1..eccb5c9734 100644
--- a/files/ru/web/api/extendableevent/waituntil/index.html
+++ b/files/ru/web/api/extendableevent/waituntil/index.html
@@ -5,13 +5,13 @@ translation_of: Web/API/ExtendableEvent/waitUntil
---
ExtendableEvent.waitUntil() сообщает диспетчеру событий, что выполняется действие. Также этот метод может быть использован, для того чтобы определить было ли то действие успешным. В рамках service workers, waitUntil() сообщает браузеру, что действие продолжается пока обещание не завершится (promise settles) и браузер не должен прерывать service worker если он хочет, чтобы это действие завершилось.ExtendableEvent.waitUntil() сообщает диспетчеру событий, что выполняется действие. Также этот метод может быть использован, для того чтобы определить было ли то действие успешным. В рамках service workers, waitUntil() сообщает браузеру, что действие продолжается пока промис не завершится (promise settles) и браузер не должен прерывать service worker если он хочет, чтобы это действие завершилось.install в {{domxref("ServiceWorkerGlobalScope", "service workers")}} используют waitUntil() чтобы задержать service worker в {{domxref("ServiceWorkerRegistration.installing", "installing")}} фазе пока не завершатся задачи. Если обещание переданное в waitUntil() отклоняется, установка считается неудачной и устанавливаемый service worker отбрасывается. В первую очередь это используется для гарантии того, что service worker не рассматривается как установленный (installed), пока все основные кеши на которые он зависит успешно не заполнены.install в {{domxref("ServiceWorkerGlobalScope", "service workers")}} используют waitUntil() чтобы задержать service worker в {{domxref("ServiceWorkerRegistration.installing", "installing")}} фазе пока не завершатся задачи. Если промис, переданный в waitUntil(), отклоняется, установка считается неудачной и устанавливаемый service worker отбрасывается. В первую очередь это используется для гарантии того, что service worker не рассматривается как установленный (installed), пока все основные кеши на которые он зависит успешно не заполнены.activate в {{domxref("ServiceWorkerGlobalScope", "service workers")}} используют waitUntil() для размещения в буфере функциональных событий таких как fetch и push пока обещание переданное в waitUntil() не завершится успешно. Это даёт service worker время, чтобы обновить схемы базы данных и удалить устаревшие {{domxref("Cache", "caches")}}, таким образом другие события могут полагаться на полностью обновлённое состояние.activate в {{domxref("ServiceWorkerGlobalScope", "service workers")}} используют waitUntil() для размещения в буфере функциональных событий таких как fetch и push пока промис, переданный в waitUntil(), не завершится успешно. Это даёт service worker время, чтобы обновить схемы базы данных и удалить устаревшие {{domxref("Cache", "caches")}}, таким образом другие события могут полагаться на полностью обновлённое состояние.waitUntil() должен быть изначально вызван внутри колбэка события (event callback), но после этого он может быть вызван множество раз, до тех пор пока все обещания переданные в него не завершатся успешно.waitUntil() должен быть изначально вызван внутри колбэка события (event callback), но после этого он может быть вызван множество раз, до тех пор пока все промисы, переданные в него, не завершатся успешно.
fetch(), не будет отвергнуто при статусе ошибки HTTP, даже если ответ является HTTP 404 или 500. Вместо этого, оно будет разрешаться нормально (со статусом ok установленным в false), и будет отклоняться только при сбое в сети или если что-то помешало завершению запроса.fetch(), не будет отвергнут при статусе ошибки HTTP, даже если ответ является HTTP 404 или 500. Вместо этого, оно будет разрешаться нормально (со статусом ok установленным в false), и будет отклоняться только при сбое в сети или если что-то помешало завершению запроса.fetch() может получать межсайтовые куки-файлы; таким образом вы можете установить межсайтовую сессию используя fetch.MediaStream whose video and/or audio tracks come from those devices is delivered to the specified success callback. If permission is denied, no compatible input devices exist, or any other error condition occurs, the error callback is executed with a {{domxref("MediaStreamError")}} object describing what went wrong. If the user instead doesn't make a choice at all, neither callback is executed.Синтаксис
diff --git a/files/ru/web/api/request/index.html b/files/ru/web/api/request/index.html
index a401b2cbe1..7245130a9e 100644
--- a/files/ru/web/api/request/index.html
+++ b/files/ru/web/api/request/index.html
@@ -75,7 +75,7 @@ translation_of: Web/API/Request

Промисы (обещания)
+Промисы
getAnimations() и эффект не полностью поддерживаются на момент написания этой статьи, но polyfill поддерживает их уже сегодня.Обратные вызовы и обещания
+Колбэки и промисы
onfinish и oncancel.Заключение
diff --git a/files/ru/web/api/webvr_api/index.html b/files/ru/web/api/webvr_api/index.html
index 8905173834..07cdac8fd5 100644
--- a/files/ru/web/api/webvr_api/index.html
+++ b/files/ru/web/api/webvr_api/index.html
@@ -84,7 +84,7 @@ translation_of: Web/API/WebVR_API
true).Window события
diff --git a/files/ru/web/api/windoworworkerglobalscope/fetch/index.html b/files/ru/web/api/windoworworkerglobalscope/fetch/index.html
index dc4a7e7f7e..37be5853ae 100644
--- a/files/ru/web/api/windoworworkerglobalscope/fetch/index.html
+++ b/files/ru/web/api/windoworworkerglobalscope/fetch/index.html
@@ -13,7 +13,7 @@ translation_of: Web/API/WindowOrWorkerGlobalScope/fetch
WorkerOrGlobalScope относится к {{domxref("Window")}} и {{domxref("WorkerGlobalScope")}} сразу. Это означает, что метод fetch() доступен практически в любом контексте, в котором бы вы не захотели получить ресурсы.fetch() достаточно удостовериться в том, что обещание выполнено и что свойство {{domxref("Response.ok")}} имеет значение true. HTTP статус 404 не является сетевой ошибкой.fetch() достаточно удостовериться в том, что промис выполнен и что свойство {{domxref("Response.ok")}} имеет значение true. HTTP статус 404 не является сетевой ошибкой.fetch() контролируется директивой connect-src directive of Content Security Policy (политика безопасности контента), а не директивой ресурсов, которые извлекает.
Частые ошибки
-// Плохой пример! Три ошибки!
doSomething().then(function(result) {
- doSomethingElse(result) // Забыл вернуть обещание из внутренней цепочки + неуместное влаживание
+ doSomethingElse(result) // Забыл вернуть промис из внутренней цепочки + неуместное влаживание
.then(newResult => doThirdThing(newResult));
}).then(() => doFourthThing());
// Забыл закончить цепочку методом catchdoFourthThing() не будет ждать doSomethingElse() или doThirdThing() пока тот закончится, и будет исполнятся параллельно с ними, это ,вероятно, не то что хотел разработчик. Отдельные цепочки также имеют отдельную обработку ошибок, что приводит к необработанным ошибкам.catch. Незаконченные цепочки приводят к необработанным отторжениям обещаний в большинстве браузеров.catch. Незаконченные цепочки приводят к необработанным отторжениям промисов в большинстве браузеров.doSomething()
.then(function(result) {
diff --git a/files/ru/web/javascript/reference/errors/not_a_constructor/index.html b/files/ru/web/javascript/reference/errors/not_a_constructor/index.html
index 6dd7c11364..cc7a5e3150 100644
--- a/files/ru/web/javascript/reference/errors/not_a_constructor/index.html
+++ b/files/ru/web/javascript/reference/errors/not_a_constructor/index.html
@@ -69,11 +69,11 @@ var obj = new f;
var mycar = new Car('Лада', 'Самара', 1993);
-В Обещаниях (Promises)
+В Промисах
-TypeError: this is not a constructor:TypeError: this is not a constructor:return new Promise.resolve(true);
diff --git a/files/ru/web/javascript/reference/global_objects/promise/all/index.html b/files/ru/web/javascript/reference/global_objects/promise/all/index.html
index 44ef0a5cf7..e6e344a440 100644
--- a/files/ru/web/javascript/reference/global_objects/promise/all/index.html
+++ b/files/ru/web/javascript/reference/global_objects/promise/all/index.html
@@ -4,7 +4,7 @@ slug: Web/JavaScript/Reference/Global_Objects/Promise/all
tags:
- ECMAScript6
- JavaScript
- - Обещание
+ - Промис
- метод
translation_of: Web/JavaScript/Reference/Global_Objects/Promise/all
---
@@ -12,7 +12,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Promise/all
Общее описание
-Promise.all(iterable) возвращает обещание, которое выполнится тогда, когда будут выполнены все обещания, переданные в виде перечисляемого аргумента, или отклонено любое из переданных обещаний.Promise.all(iterable) возвращает промис, который выполнится тогда, когда будут выполнены все промисы, переданные в виде перечисляемого аргумента, или отклонено любое из переданных промисов.Синтаксис
@@ -27,19 +27,19 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Promise/all
Возвращаемое значение
-Описание
-Если какой-либо элемент перечисляемого объекта не является обещанием, то он будет преобразован с помощью метода {{jsxref("Promise.resolve")}}.Если какой-либо элемент перечисляемого объекта не является промисом, то он будет преобразован с помощью метода {{jsxref("Promise.resolve")}}.Promise.all будет немедленно отклонён со значением отклонённого обещания, не учитывая другие обещания, независимо выполнены они или нет. Если в качестве аргумента будет передан пустой массив, то Promise.all будет выполнен немедленно. Promise.all будет немедленно отклонён со значением отклонённого промиса, не учитывая другие промисы, независимо выполнены они или нет. Если в качестве аргумента будет передан пустой массив, то Promise.all будет выполнен немедленно. Примеры
Использование
-Promise.allreject()).reject()).
-var p1 = Promise.resolve(3);
var p2 = 1337;
@@ -57,7 +57,7 @@ Promise.all([p1, p2, p3]).then(values => {
-Promise.all поведение немедленного отклоненияPromise.all будет немедленно отклонён если одно из переданных обещаний будет отклонено: если у вас есть четыре обещания которые будут выполнены с задержкой и одно, которое будет отклонено немедленно - тогда Promise.all будет немедленно отклонён.Promise.all будет немедленно отклонён если один из переданных промисов будет отклонен: если у вас есть четыре промиса которые будут выполнены с задержкой и один, который будет отклонен немедленно - тогда Promise.all будет немедленно отклонён.
diff --git a/files/ru/web/javascript/reference/global_objects/promise/race/index.html b/files/ru/web/javascript/reference/global_objects/promise/race/index.html
index fbce7aeb3c..c77e1fdc1c 100644
--- a/files/ru/web/javascript/reference/global_objects/promise/race/index.html
+++ b/files/ru/web/javascript/reference/global_objects/promise/race/index.html
@@ -4,13 +4,13 @@ slug: Web/JavaScript/Reference/Global_Objects/Promise/race
tags:
- ECMAScript6
- Promise
- - Обещание
+ - Промис
- метод
translation_of: Web/JavaScript/Reference/Global_Objects/Promise/race
---
var p1 = new Promise((resolve, reject) => {
setTimeout(resolve, 1000, "one");
@@ -72,7 +72,7 @@ var p4 = new Promise((resolve, reject) => {
setTimeout(resolve, 4000, "four");
});
var p5 = new Promise((resolve, reject) => {
-// Это обещание прервёт Promise.all
+// Этот промис прервёт Promise.all
reject("reject");
});
diff --git a/files/ru/web/javascript/reference/global_objects/promise/any/index.html b/files/ru/web/javascript/reference/global_objects/promise/any/index.html
index fc85e0927c..9216e7496e 100644
--- a/files/ru/web/javascript/reference/global_objects/promise/any/index.html
+++ b/files/ru/web/javascript/reference/global_objects/promise/any/index.html
@@ -5,7 +5,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Promise/any
---
Метод Promise.any() принимает итерируемый объект содержащий объекты "обещаний" {{JSxRef("Promise")}}. Как только одно из "обещаний"(Promise) выполнится успешно(fullfill), метод возвратит единственный объект Promise со значением выполненного "обещания". Если ни одно из "обещаний" не завершится успешно(если все "обещания" завершатся с ошибкой, т.е. rejected), тогда возвращённый объект promise будет отклонён(rejected) с одним из значений: массив содержащий причины ошибки(отклонения), или {{JSxRef("AggregateError")}} — подкласс {{JSxRef("Error")}}, который объединяет выброшенные ошибки вместе. По существу, метод Promise.any() является противоположностью для {{JSxRef("Promise.all()")}}.Метод Promise.any() принимает итерируемый объект содержащий объекты промисов {{JSxRef("Promise")}}. Как только один из промисов (Promise) выполнится успешно (fullfill), метод возвратит единственный объект Promise со значением выполненного промиса. Если ни один из промисов не завершится успешно (если все промисы завершатся с ошибкой, т.е. rejected), тогда возвращённый объект Promise будет отклонён (rejected) с одним из значений: массив содержащий причины ошибки (отклонения), или {{JSxRef("AggregateError")}} — подкласс {{JSxRef("Error")}}, который объединяет выброшенные ошибки вместе. По существу, метод Promise.any() является противоположностью для {{JSxRef("Promise.all()")}}.Promise.any() method is experimental and not fully supported by all browsers. It is currently in the TC39 Candidate stage (Stage 3).
Описание
-Promise.any() содержит только одно значение (при условии, что хотя бы одно из "обещаний" исполнено успешно). Такой подход может быть выгодным, когда нужно, чтобы выполнилось только одно "обещание", неважно какое. Также, в отличие от {{JSxRef("Promise.race()")}}, который возвращает "обещание", содержащее значение первого завершённого(resolved или rejected), этот метод возвращает "обещание" содержащее значение первого успешно выполненного(resolved) "обещания". Метод будет игнорировать исполнение обещаний с ошибкой(rejection) вплоть до первого исполненного успешно(fullfilment).Promise.any() содержит только одно значение (при условии, что хотя бы один из промисов исполнен успешно). Такой подход может быть выгодным, когда нужно, чтобы выполнился только один промис, неважно какой. Также, в отличие от {{JSxRef("Promise.race()")}}, который возвращает промис, содержащий значение первого завершённого(resolved или rejected), этот метод возвращает промис содержащее значение первого успешно выполненного(resolved) промиса. Метод будет игнорировать исполнение промисов с ошибкой(rejection) вплоть до первого исполненного успешно (fullfilment).Успешное исполнение(Fullfilment)
-
-
Promise.any асинхронно исполнится успешно.Promise.any асинхронно исполнится успешно.Исполнение с ошибкой(Rejection)
-Promise.any асинхронно будет отклонено в одном из двух вариантов (которые ещё не были согласованы): либоPromise.any асинхронно будет отклонено в одном из двух вариантов (которые ещё не были согласованы): либо
-
diff --git a/files/ru/web/javascript/reference/global_objects/promise/catch/index.html b/files/ru/web/javascript/reference/global_objects/promise/catch/index.html
index 5a2ed19b38..e3250af6e5 100644
--- a/files/ru/web/javascript/reference/global_objects/promise/catch/index.html
+++ b/files/ru/web/javascript/reference/global_objects/promise/catch/index.html
@@ -5,13 +5,13 @@ tags:
- ECMAScript6
- JavaScript
- Prototype
- - Обещание
+ - Промис
- метод
translation_of: Web/JavaScript/Reference/Global_Objects/Promise/catch
---
Promise(обещание) и работает только в случае отклонения обещания. Ведёт себя аналогично вызову {{jsxref("Promise.then", "Promise.prototype.then(undefined, onRejected)")}}.Promise() и работает только в случае отклонения промиса. Ведёт себя аналогично вызову {{jsxref("Promise.then", "Promise.prototype.then(undefined, onRejected)")}}.Syntax
@@ -26,12 +26,12 @@ p.catch(function(reason) {
reasonОписание
-
catch может быть полезен для обработки ошибок в вашей структуре обещаний.catch может быть полезен для обработки ошибок в вашей структуре промисов.Примеры
@@ -113,7 +113,7 @@ p2.catch(function(e) {
console.log(e); // Никогда не вызовется
});
-// Ошибки выброшенные после выполнения обещания будут проигнорированны
+// Ошибки выброшенные после выполнения промиса будут проигнорированны
var p3 = new Promise(function(resolve, reject) {
resolve();
throw 'Silenced Exception!';
diff --git a/files/ru/web/javascript/reference/global_objects/promise/finally/index.html b/files/ru/web/javascript/reference/global_objects/promise/finally/index.html
index c12f7625a0..3814eb58aa 100644
--- a/files/ru/web/javascript/reference/global_objects/promise/finally/index.html
+++ b/files/ru/web/javascript/reference/global_objects/promise/finally/index.html
@@ -5,7 +5,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Promise/finally
---
finally() возвращает {{jsxref("Promise")}}. Когда Promise (обещание) был выполнен, в не зависимости успешно или с ошибкой, указанная функция будет выполнена. Это даёт возможность запустить один раз определённый участок кода, который должен выполниться вне зависимости от того, с каким результатом выполнился Promise.finally() возвращает {{jsxref("Promise")}}. Когда промис был выполнен, вне зависимости успешно или с ошибкой, указанная функция будет выполнена. Это даёт возможность запустить один раз определённый участок кода, который должен выполниться вне зависимости от того, с каким результатом выполнился Promise.
onFinallyPromise (обещание) завершено.Возвращаемое значение
@@ -34,13 +34,13 @@ p.finally(() => {
Описание
-finally() может быть полезен, если необходимо произвести какие-либо вычисления или очистку, как только Promise (обещание) завершено, вне зависимости от результата.finally() может быть полезен, если необходимо произвести какие-либо вычисления или очистку, как только Promise (промис) завершено, вне зависимости от результата.finally() очень схож с вызовом .then(onFinally, onFinally), однако существует несколько различий:
diff --git a/files/ru/web/javascript/reference/global_objects/promise/index.html b/files/ru/web/javascript/reference/global_objects/promise/index.html
index f942b4fda7..b4075019a6 100644
--- a/files/ru/web/javascript/reference/global_objects/promise/index.html
+++ b/files/ru/web/javascript/reference/global_objects/promise/index.html
@@ -5,14 +5,14 @@ tags:
- ECMAScript6
- JavaScript
- Promise
- - Обещания
+ - Промисы
translation_of: Web/JavaScript/Reference/Global_Objects/Promise
---
finally() позволяет избежать двойного объявления одной и той же функции или создания переменной. finally не получает аргументов, так как не существует способа определить, будет ли обещание выполнено успешно или с ошибкой. Данный метод необходимо использовать, если не важна причина ошибки или результат успешного выполнения и, следовательно, нет необходимости её/его передавать.finally не получает аргументов, так как не существует способа определить, будет ли промис выполнен успешно или с ошибкой. Данный метод необходимо использовать, если не важна причина ошибки или результат успешного выполнения и, следовательно, нет необходимости её/его передавать.Promise.resolve(2).then(() => {}, () => {}) (результатом которого будет resolved-промис, со значением undefined), результатом Promise.resolve(2).finally(() => {}) будет resolved-промис со значением 2.Promise.reject(3).then(() => {}, () => {}) (результатом которого будет resolved-промис, со значением undefined), результатом Promise.reject(3).finally(() => {}) будет rejected-промис со значением 3.Сводка
-Promise (промис) используется для отложенных и асинхронных вычислений.Promise используется для отложенных и асинхронных вычислений.Описание
-Promise (промис) представляет собой обёртку для значения, неизвестного на момент создания промиса. Он позволяет обрабатывать результаты асинхронных операций так, как если бы они были синхронными: вместо конечного результата асинхронного метода возвращается обещание (промис) получить результат в некоторый момент в будущем.Promise (промис) представляет собой обёртку для значения, неизвестного на момент создания промиса. Он позволяет обрабатывать результаты асинхронных операций так, как если бы они были синхронными: вместо конечного результата асинхронного метода возвращается своего рода обещание (дословный перевод слова "промис") получить результат в некоторый момент в будущем.Promise может находиться в трёх состояниях:Promise:Promise:function myAsyncFunction(url) {
return new Promise((resolve, reject) => {
@@ -159,7 +159,7 @@ myFirstPromise.then((successMessage) => {
<div id="log"></div>
Promise. Метод testPromise() вызывается при каждом нажатии на {{HTMLElement("button")}}. При этом создаётся промис, которое успешно выполняется при помощи window.setTimeout, со значением 'result' в случайном интервале от 1 до 3-х секунд.Promise. Метод testPromise() вызывается при каждом нажатии на {{HTMLElement("button")}}. При этом создаётся промис, который успешно выполняется при помощи window.setTimeout, со значением 'result' в случайном интервале от 1 до 3-х секунд.p1.then. Это показывает как синхронная часть метода отвязана от асинхронного завершения промиса.Возвращаемое значение
-Описание
-race возвращает Обещание (Promise) с результатом, первого завершённого из переданных обещаний. Т.е. возвратит resolve или reject, в зависимости от того, что случится первым.race возвращает Promise с результатом, первого завершённого из переданных промисов. Т.е. возвратит resolve или reject, в зависимости от того, что случится первым.Примеры
diff --git a/files/ru/web/javascript/reference/global_objects/promise/resolve/index.html b/files/ru/web/javascript/reference/global_objects/promise/resolve/index.html
index 1587d254ac..9c10bef5ee 100644
--- a/files/ru/web/javascript/reference/global_objects/promise/resolve/index.html
+++ b/files/ru/web/javascript/reference/global_objects/promise/resolve/index.html
@@ -4,13 +4,13 @@ slug: Web/JavaScript/Reference/Global_Objects/Promise/resolve
tags:
- ECMAScript6
- JavaScript
- - Обещание
+ - Промис
- метод
translation_of: Web/JavaScript/Reference/Global_Objects/Promise/resolve
---
Promise.resolve(value) возвращает {{jsxref("Promise")}} выполненный с переданным значением. Если переданное значение является thenable - объект (т.е. имеет метод {{jsxref("Promise.then", "\"then\" method")}}), возвращаемое обещание будет следовать thenable - объекту, принимая своё состояние; в ином случае возвращаемое обещание будет выполнено с переданным значением.Promise.resolve(value) возвращает {{jsxref("Promise")}} выполненный с переданным значением. Если переданное значение является thenable - объект (т.е. имеет метод {{jsxref("Promise.then", "\"then\" method")}}), возвращаемый промис будет следовать thenable - объекту, принимая своё состояние; в ином случае возвращаемый промис будет выполнен с переданным значением.Синтаксис
@@ -23,7 +23,7 @@ Promise.resolve(thenable);
Возвращаемое значение
@@ -32,7 +32,7 @@ Promise.resolve(thenable);
Описание
-Метод Promise.resolve возвращает выполненное обещание (Promise).Метод Promise.resolve возвращает выполненное промис (Promise).Примеры
@@ -53,7 +53,7 @@ p.then(function(v) {
});
Выполнение с другим обещанием (
+Promise)Выполнение с другим промисом (
Promise)var original = Promise.resolve(true);
var cast = Promise.resolve(original);
diff --git a/files/ru/web/javascript/reference/global_objects/promise/then/index.html b/files/ru/web/javascript/reference/global_objects/promise/then/index.html
index 0a347a9778..5bdc241aa9 100644
--- a/files/ru/web/javascript/reference/global_objects/promise/then/index.html
+++ b/files/ru/web/javascript/reference/global_objects/promise/then/index.html
@@ -58,7 +58,7 @@ p1.then(function(value) {
Соединение
-then возвращает Promise (обещание), вы можете объединить несколько вызовов then в цепочку. Значения возвращаемые из onFulfilled или onRejected колбэков будут автоматически обёрнуты в обещание.then возвращает промис (Promise), вы можете объединить несколько вызовов then в цепочку. Значения возвращаемые из колбэков onFulfilled или onRejected будут автоматически обёрнуты в промис.var p2 = new Promise(function(resolve, reject) {
resolve(1);
@@ -76,10 +76,10 @@ p2.then(function(value) {
});
-function fetch_current_data() {
- // API функции fetch() возвращает обещание. Эта функция
+ // API функции fetch() возвращает промис. Эта функция
// имеет аналогичный API, за исключением значения в случае выполнения
return fetch("current-data.json").then((response) => {
if (response.headers.get("content-type") != "application/json") {
@@ -87,13 +87,13 @@ p2.then(function(value) {
}
var j = response.json();
// можем что-нибудь делать с j
- return j; // в случае выполнения обещания, значение
+ return j; // в случае выполнения промиса, значение
// передаётся в fetch_current_data().then()
});
}
-function resolveLater(resolve, reject) {
setTimeout(function () {
@@ -108,7 +108,7 @@ function rejectLater(resolve, reject) {
var p1 = Promise.resolve("foo");
var p2 = p1.then(function() {
- // Возвращает обещание, которое будет разрешено значением 10 через 1 секунду
+ // Возвращает промис, который будет разрешен значением 10 через 1 секунду
return new Promise(resolveLater);
});
p2.then(function(v) {
@@ -119,7 +119,7 @@ p2.then(function(v) {
});
var p3 = p1.then(function() {
-// Возвращает обещание, которое будет отброшено значением 20 через 1 секунду
+// Возвращает промис, который будет отброшен значением 20 через 1 секунду
return new Promise(rejectLater);
});
p3.then(function(v) {
diff --git a/files/ru/web/javascript/reference/global_objects/webassembly/compile/index.html b/files/ru/web/javascript/reference/global_objects/webassembly/compile/index.html
index a3c8f5e34f..8cbcd47e36 100644
--- a/files/ru/web/javascript/reference/global_objects/webassembly/compile/index.html
+++ b/files/ru/web/javascript/reference/global_objects/webassembly/compile/index.html
@@ -20,13 +20,13 @@ translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/compile
Возвращаемое значение
-Promise), которое разрешает объект {{jsxref("WebAssembly.Module")}}, представляющий скомпилированный модуль.Promise), который разрешает объект {{jsxref("WebAssembly.Module")}}, представляющий скомпилированный модуль.Исключения
bufferSource не является typed array, генерируется {{jsxref("TypeError")}}.Примеры
diff --git a/files/ru/web/javascript/reference/global_objects/webassembly/compilestreaming/index.html b/files/ru/web/javascript/reference/global_objects/webassembly/compilestreaming/index.html
index 79b702b091..fd49c70591 100644
--- a/files/ru/web/javascript/reference/global_objects/webassembly/compilestreaming/index.html
+++ b/files/ru/web/javascript/reference/global_objects/webassembly/compilestreaming/index.html
@@ -15,24 +15,24 @@ translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStrea
.wasm, который вы хотите передать и скомпилировать..wasm, который вы хотите передать и скомпилировать.Возвращаемое значение
-Promise), которое разрешает объект {{jsxref("WebAssembly.Module")}}, представляющий скомпилированный модуль.Promise), который разрешает объект {{jsxref("WebAssembly.Module")}}, представляющий скомпилированный модуль.Исключения
bufferSource не является typed array, генерируется {{jsxref("TypeError")}}.Примеры
- Поскольку функция compileStreaming() принимает обещание для объекта {{domxref("Response")}}, вы можете напрямую передать ему вызов {{domxref("WindowOrWorkerGlobalScope.fetch()")}}, и он передаст ответ в выполняемую функцию.compileStreaming() принимает промис для объекта {{domxref("Response")}}, вы можете напрямую передать ему вызов {{domxref("WindowOrWorkerGlobalScope.fetch()")}}, и он передаст ответ в выполняемую функцию.
var importObject = { imports: { imported_func: arg => console.log(arg) } };
--
cgit v1.2.3-54-g00ecf