Skip to content

Commit

Permalink
[ru] replace old noteblock syntax with GFM syntax in `learn/javascrip…
Browse files Browse the repository at this point in the history
…t` folder (#22771)

[ru] replace old noteblock syntax with GFM syntax in 'learn/javascript' folder
  • Loading branch information
leon-win authored Aug 6, 2024
1 parent 98ee875 commit 6cb75d4
Show file tree
Hide file tree
Showing 34 changed files with 232 additions and 204 deletions.
3 changes: 2 additions & 1 deletion files/ru/learn/javascript/asynchronous/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ slug: Learn/JavaScript/Asynchronous

Асинхронный JavaScript довольно сложная тема, и мы советуем пройти [Первые шаги в JavaScript](/ru/docs/Learn/JavaScript/First_steps) и [Блоки в JavaScript](/ru/docs/Learn/JavaScript/Building_blocks) прежде чем начать эту тему.

> **Примечание:** Если вы работаете за компьютером/планшетом/другим устройством где у вас нет возможности создавать собственные файлы, вы можете попробовать(почти все) примеры кода в одном из веб-приложений, таких, как [JSBin](https://jsbin.com/) или [Glitch](https://glitch.com).
> [!NOTE]
> Если вы работаете за компьютером/планшетом/другим устройством где у вас нет возможности создавать собственные файлы, вы можете попробовать(почти все) примеры кода в одном из веб-приложений, таких, как [JSBin](https://jsbin.com/) или [Glitch](https://glitch.com).
## Руководства

Expand Down
12 changes: 8 additions & 4 deletions files/ru/learn/javascript/asynchronous/introducing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ btn.addEventListener("click", () => {

{{EmbedLiveSample('Синхронный_JavaScript', '100%', '70px')}}

> **Примечание:** Важно помнить, что [`alert()`](/ru/docs/Web/API/Window/alert), хоть и часто используется для демонстрации синхронных блокирующих операций, сильно не рекомендован к использованию в реальных приложениях.
> [!NOTE]
> Важно помнить, что [`alert()`](/ru/docs/Web/API/Window/alert), хоть и часто используется для демонстрации синхронных блокирующих операций, сильно не рекомендован к использованию в реальных приложениях.
## Асинхронный JavaScript

Expand Down Expand Up @@ -142,7 +143,8 @@ fetch("products.json")
.catch((err) => console.error(`Fetch problem: ${err.message}`));
```

> **Примечание:** вы можете посмотреть законченную версию на github ([посмотрите исходный код](https://github.com/mdn/learning-area/blob/master/javascript/apis/fetching-data/can-store/can-script.js) и [запустите пример](https://mdn.github.io/learning-area/javascript/apis/fetching-data/can-store/)).
> [!NOTE]
> Вы можете посмотреть законченную версию на Github ([посмотрите исходный код](https://github.com/mdn/learning-area/blob/master/javascript/apis/fetching-data/can-store/can-script.js) и [запустите пример](https://mdn.github.io/learning-area/javascript/apis/fetching-data/can-store/)).
В примере видно, как `fetch()` принимает один параметр — URL ресурса, который нужно получить из сети, — и возвращает [промис](/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise). Промис — это объект, представляющий асинхронную операцию, выполненную удачно или неудачно. Он представляет собой как бы промежуточное состояние. По сути, это способ браузера сказать: "я обещаю вернуться к вам с ответом как можно скорее", поэтому в дословном переводе "промис" (promise) означает "обещание".

Expand All @@ -151,7 +153,8 @@ fetch("products.json")
- Два [`then()`](/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) блока. Оба включают в себя функцию обратного вызова, которая запустится, если предыдущая операция закончилась успешно, и каждая колбэк-функция принимает на вход результат предыдущей успешно выполненной операции, таким образом вы можете выполнять операции последовательно. Каждый `.then()` блок возвращает новый promise, это значит что вы можете объединять в цепочки блоки `.then()`, таким образом можно выполнить несколько асинхронных операций по порядку, одну за другой.
- [`catch()`](/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch) блок описывается в конце и будет запущен если какой-либо `.then()` блок завершится с ошибкой — это аналогично синхронному [`try...catch`](/ru/docs/Web/JavaScript/Reference/Statements/try...catch), ошибка становится доступной внутри `catch()`, что может быть использовано для сообщения пользователю о типе возникшей ошибки. Однако синхронный `try...catch` не будет работать с promise, хотя будет работать с [async/await](/ru/docs/Learn/JavaScript/Asynchronous/Promises), с которыми вы познакомитесь позже.

> **Примечание:** вы узнаете намного больше о promise позже в этом модуле, так что не волнуйтесь если вы что-нибудь не поняли.
> [!NOTE]
> Вы узнаете намного больше о promise позже в этом модуле, так что не волнуйтесь если вы что-нибудь не поняли.
### Очередь событий

Expand Down Expand Up @@ -236,7 +239,8 @@ TypeError: image is undefined; can't access its "src" property

Это происходит потому, что в то же время браузер пытается запустить третий `console.log()`, блок `fetch()` ещё не закончил выполнение, поэтому переменная `image` ещё не имеет значения.

> **Примечание:** Из соображений безопасности вы не можете применять `fetch()` к файлам из вашей локальной системы (или запустить другие такие операции локально); чтобы запустить локально пример выше вам необходимо запустить его через [локальный веб-сервер](/ru/docs/Learn/Common_questions/Tools_and_setup/set_up_a_local_testing_server).
> [!NOTE]
> Из соображений безопасности вы не можете применять `fetch()` к файлам из вашей локальной системы (или запустить другие такие операции локально); чтобы запустить локально пример выше вам необходимо запустить его через [локальный веб-сервер](/ru/docs/Learn/Common_questions/Tools_and_setup/set_up_a_local_testing_server).
## Активное обучение: сделайте все это асинхронно!

Expand Down
3 changes: 2 additions & 1 deletion files/ru/learn/javascript/asynchronous/promises/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,8 @@ const values = await Promise.all([coffee, tea, description]);

Для обработки ошибок мы добавили блок `.catch()` для функции `displayContent()`; Это позволило нам отловить ошибки в обоих функциях.

> **Примечание:** Мы также можем использовать синхронный блок [`finally`](/ru/docs/Web/JavaScript/Reference/Statements/try...catch#The_finally_clause) внутри асинхронной функции, вместо асинхронного `.finally()`, чтобы получить информацию о результате нашей операции — смотрите в действии в нашем [live example](https://mdn.github.io/learning-area/javascript/asynchronous/async-await/promise-finally-async-await.html) (смотрите [source code](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/async-await/promise-finally-async-await.html)).
> [!NOTE]
> Мы также можем использовать синхронный блок [`finally`](/ru/docs/Web/JavaScript/Reference/Statements/try...catch#The_finally_clause) внутри асинхронной функции, вместо асинхронного `.finally()`, чтобы получить информацию о результате нашей операции — смотрите в действии в нашем [live example](https://mdn.github.io/learning-area/javascript/asynchronous/async-await/promise-finally-async-await.html) (смотрите [source code](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/async-await/promise-finally-async-await.html)).
## Недостатки async/await

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,15 @@ alert("This is a message");

Функция `alert` ограничена: вы можете изменить текст сообщения, но не получится изменить его стиль, например, цвет, значок или что-то ещё. Создадим сообщение, более интересное по стилю.

> **Примечание:** Этот пример будет работать во всех современных браузерах, но стиль может выглядеть немного смешным в более старых браузерах. Мы рекомендуем вам выполнять это упражнение в современном браузере, таком как Firefox, Opera или Chrome.
> [!NOTE]
> Этот пример будет работать во всех современных браузерах, но стиль может выглядеть немного смешным в более старых браузерах. Мы рекомендуем вам выполнять это упражнение в современном браузере, таком как Firefox, Opera или Chrome.
## Основная функция

Для начала давайте соберём основную функцию.

> **Примечание:** Для согласований имён функций нужно следовать тем же правилам, что и [правила именования переменных](/ru/docs/Learn/JavaScript/Первые_шаги/Variables#Правила_именования_переменных). Отличить имена функций от имён переменных просто: после имён функций указываются круглые скобки, а после имён переменных их нет.
> [!NOTE]
> Для согласований имён функций нужно следовать тем же правилам, что и [правила именования переменных](/ru/docs/Learn/JavaScript/Первые_шаги/Variables#Правила_именования_переменных). Отличить имена функций от имён переменных просто: после имён функций указываются круглые скобки, а после имён переменных их нет.
1. Откройте файл [function-start.html](https://github.com/mdn/learning-area/blob/master/javascript/building-blocks/functions/function-start.html) и скопируйте его себе на компьютер. Код HTML в нем предельно прост: body содержит только одну кнопку. Также здесь представлен базовый CSS для создания настраиваемого окна сообщений и пустой элемент {{htmlelement ("script")}} для размещения нашего JavaScript.
2. Затем добавьте строку внутри элемента `<script>`:
Expand Down Expand Up @@ -214,7 +216,8 @@ btn.onclick = displayMessage();
1. Для начала, загрузите значки, необходимые для этого упражнения ([warning](https://raw.githubusercontent.com/mdn/learning-area/master/javascript/building-blocks/functions/icons/warning.png) и [chat](https://raw.githubusercontent.com/mdn/learning-area/master/javascript/building-blocks/functions/icons/chat.png) \[тут чёрные иконки на чёрном фоне... тролли на GitHub]) из GitHub. Сохраните их в новой папке `icons` в том же месте, что и ваш HTML-файл.
> **Примечание:** иконки [warning](https://www.iconfinder.com/icons/1031466/alarm_alert_error_warning_icon) и [chat](https://www.iconfinder.com/icons/1031441/chat_message_text_icon) были найдены на [iconfinder.com](https://www.iconfinder.com/), и разработаны [Nazarrudin Ansyari](https://www.iconfinder.com/nazarr). Спасибо! (Фактические страницы значков были перемещены или удалены.)
> [!NOTE]
> Иконки были найдены на [iconfinder.com](https://www.iconfinder.com/), и разработаны [Nazarrudin Ansyari](https://www.iconfinder.com/nazarr). Спасибо! (Фактические страницы значков были перемещены или удалены.)
2. Затем найдите CSS внутри вашего HTML-файла. Мы сделаем несколько изменений, чтобы освободить место для иконок. Во-первых, обновите ширину `.msgBox`:
Expand Down Expand Up @@ -267,7 +270,8 @@ btn.onclick = displayMessage();
Вот, насколько полезной становится наша (теперь не очень) маленькая функция.
> **Примечание:** Если у вас возникли проблемы с запуском примера, не стесняйтесь проверять свой код на готовой версии [GitHub](https://github.com/mdn/learning-area/blob/master/javascript/building-blocks/functions/function-stage-4.html) (см. также [в режиме реального времени](https://mdn.github.io/learning-area/javascript/building-blocks/functions/function-stage-4.html)) или обратитесь к нам за помощью.
> [!NOTE]
> Если у вас возникли проблемы с запуском примера, не стесняйтесь проверять свой код на готовой версии [GitHub](https://github.com/mdn/learning-area/blob/master/javascript/building-blocks/functions/function-stage-4.html) (см. также [в режиме реального времени](https://mdn.github.io/learning-area/javascript/building-blocks/functions/function-stage-4.html)) или обратитесь к нам за помощью.
## Вывод
Expand Down
Loading

0 comments on commit 6cb75d4

Please sign in to comment.