From 08dc1a1e60063705ccefc1eb4ef0a17d1ddf196b Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Sun, 14 Mar 2021 18:26:20 +0300 Subject: Fix typos --- .../web/javascript/guide/using_promises/index.html | 30 +++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'files/ru/web/javascript/guide') diff --git a/files/ru/web/javascript/guide/using_promises/index.html b/files/ru/web/javascript/guide/using_promises/index.html index d104f15d9e..b54c6a936a 100644 --- a/files/ru/web/javascript/guide/using_promises/index.html +++ b/files/ru/web/javascript/guide/using_promises/index.html @@ -15,9 +15,9 @@ original_slug: Web/JavaScript/Guide/Ispolzovanie_promisov

{{jsxref("Promise")}} (промис, англ. "обещание") - это объект, представляющий результат успешного или неудачного завершения асинхронной операции. Так как большинство людей пользуются уже созданными промисами, это руководство начнем с объяснения использования вернувшихся промисов до объяснения принципов создания. 

-

В сущности, промис - это возвращаемый объект, в который вы записываете два коллбэка вместо того, чтобы передать их функции.

+

В сущности, промис - это возвращаемый объект, в который вы записываете два колбэка вместо того, чтобы передать их функции.

-

Например, вместо старомодной функции, которая принимает два коллбэка и вызывает один из них в зависимости от успешного или неудачного завершения операции:

+

Например, вместо старомодной функции, которая принимает два колбэка и вызывает один из них в зависимости от успешного или неудачного завершения операции:

function doSomethingOldStyle(successCallback, failureCallback) {
   console.log("Готово.");
@@ -40,7 +40,7 @@ function failureCallback(error) {
 doSomethingOldStyle(successCallback, failureCallback);
 
-

…современные функции возвращают промис, в который вы записываете ваши коллбэки:

+

…современные функции возвращают промис, в который вы записываете ваши колбэки:

function doSomething() {
   return new Promise((resolve, reject) => {
@@ -65,12 +65,12 @@ promise.then(successCallback, failureCallback);

Гарантии

-

В отличие от старомодных переданных коллбэков промис дает некоторые гарантии:

+

В отличие от старомодных переданных колбэков промис дает некоторые гарантии:

Но наиболее непосредственная польза от промисов - цепочка вызовов (chaining).

@@ -90,11 +90,11 @@ let promise2 = promise.then(successCallback, failureCallback);
let promise2 = doSomething().then(successCallback, failureCallback);
 
-

Второй промис представляет завершение не только doSomething(), но и функций successCallback или failureCallback, переданных Вами, а они тоже могут быть асинхронными функциями, возвращающими промис. В этом случае все коллбэки, добавленные к promise2 будут поставлены в очередь за промисом, возвращаемым successCallback или failureCallback.

+

Второй промис представляет завершение не только doSomething(), но и функций successCallback или failureCallback, переданных Вами, а они тоже могут быть асинхронными функциями, возвращающими промис. В этом случае все колбэки, добавленные к promise2 будут поставлены в очередь за промисом, возвращаемым successCallback или failureCallback.

По сути, каждый вызванный промис означает успешное завершение предыдущих шагов в цепочке.

-

Раньше выполнение нескольких асинхронных операций друг за другом приводило к классической "Вавилонской башне" коллбэков:

+

Раньше выполнение нескольких асинхронных операций друг за другом приводило к классической "Вавилонской башне" колбэков:

doSomething(function(result) {
   doSomethingElse(result, function(newResult) {
@@ -105,7 +105,7 @@ let promise2 = promise.then(successCallback, failureCallback);
 }, failureCallback);
 
-

В современных функциях мы записываем коллбэки в возвращаемые промисы - формируем цепочку промисов:

+

В современных функциях мы записываем колбэки в возвращаемые промисы - формируем цепочку промисов:

doSomething().then(function(result) {
   return doSomethingElse(result);
@@ -130,7 +130,7 @@ let promise2 = promise.then(successCallback, failureCallback);
 .catch(failureCallback);
 
-

Важно: Всегда возвращайте промисы в return, иначе коллбэки не будут сцеплены и ошибки могут быть не пойманы (стрелочные функции неявно возвращают результат, если скобки {} вокруг тела функции опущены).

+

Важно: Всегда возвращайте промисы в return, иначе колбэки не будут сцеплены и ошибки могут быть не пойманы (стрелочные функции неявно возвращают результат, если скобки {} вокруг тела функции опущены).

Цепочка вызовов после catch

@@ -199,17 +199,17 @@ let promise2 = promise.then(successCallback, failureCallback);

Работа данного кода основана на промисах. Для примера здесь используется функция doSomething(), которая встречалась ранее. Вы можете прочитать больше о синтаксисе здесь

-

Примисы решают основную проблему  пирамид, обработку всех ошибок, даже вызовов исключений и программных ошибок. Это основа для функционального построения асинхронных операций.

+

Промисы решают основную проблему  пирамид, обработку всех ошибок, даже вызовов исключений и программных ошибок. Это основа для функционального построения асинхронных операций.

-

Создание промиса вокруг старого коллбэка

+

Создание промиса вокруг старого колбэка

{{jsxref("Promise")}} может быть создан с помощью конструктора. Это может понадобится только для старых API.

-

В идеале, все асинхронные функции уже должны возвращать промис. Но увы, некоторые APIs до сих пор ожидают успешного или неудачного  коллбека переданных по старинке. Типичный пример: {{domxref("WindowTimers.setTimeout", "setTimeout()")}} функция:

+

В идеале, все асинхронные функции уже должны возвращать промис. Но увы, некоторые APIs до сих пор ожидают успешного или неудачного  колбэка переданных по старинке. Типичный пример: {{domxref("WindowTimers.setTimeout", "setTimeout()")}} функция:

setTimeout(() => saySomething("10 seconds passed"), 10000);
-

Смешивание старого коллбэк-стиля и промисов проблематично. В случае неудачного завершения saySomething или программной ошибки, нельзя обработать ошибку.

+

Смешивание старого колбэк-стиля и промисов проблематично. В случае неудачного завершения saySomething или программной ошибки, нельзя обработать ошибку.

К с частью мы можем обернуть функцию в промис. Хороший тон оборачивать проблематичные функции на самом низком возможном уровне, и больше никогда их не вызывать на прямую:

-- cgit v1.2.3-54-g00ecf