Рубрики
Без рубрики

Async! Ждите! JavaScript.

JavaScript похож на безликий мир программирования мира. https://cdn-images-images-imuce-medium.com/max/1600/1*du3gkrxk6ixdmdsiyfmn2w.jpeg Источник: Google. Это может быть синхронный / Функция / O …

Автор оригинала: Ashay Mandwarya.

Поделитесь статьей о LinkedIn! Оригинальная статья на Средний JavaScript похож на безликий мир программирования мира.

Источник: Google.

Это может быть синхронный/функциональный/объектно-ориентированный/сверженная сторона/с клиентской стороной/с ERVER/S, а список идет на …

Эта статья будет про бывший асинхронный JavaScript.

JavaScript – синхронный язык!

😱😱😱 Но я подумал, что эта статья была о асинхронном JavaScript.

JavaScript – это синхронный, блокирующий и однопоточный язык

Это означает, что только одна операция может быть выполнена одновременно. Но это не вся картина здесь. Есть много способов JavaScript предоставить нам, чтобы сделать его вести себя как асинхронный язык. Один из них с Async-await Prose.

Что такое Async-await ?

Async и ждут расширения обещаний. Если вы не понятны с концепциями обещания, вы можете обратиться за моим предыдущим постом Действительно понимание обещаний Отказ

Async.

Async-функции позволяют нам написать код на основе обещания, как если бы он был синхронно, но без блокировки потока выполнения. Он работает асинхронно через петлю события. Async-функции всегда будут возвращать значение. Использование async Просто подразумевает, что обещание будет возвращено, и если возвращается <не обещание>, JavaScript автоматически обернутся его в разрешенном обещании со своим значением.

async function firstAsync() { return 27;}firstAsync().then(alert); // 27

Запуск вышеуказанного кода дает вывод оповещения как 27, это означает, что обещание было возвращено, в противном случае .then () Метод не будет выполнен.

Ждите

Оператор ожидания используется для ожидания обещания. Его можно использовать только внутри блока Async. Ключевое слово ждут, делает JavaScript ждать, пока обещание не вернет результат. Это следует отметить, что он только делает async Функциональный блок ждать, а не все выполнение программы.

Блок код ниже показывает использование Async ждут вместе.

async function firstAsync()
{
let promise = new Promise((res, rej) => { setTimeout(() => res("Now it's done!"), 1000) }); let result = await promise; // wait until the promise returns us a vslue alert(result); // "Now it's done!"}}
firstAsync();

Зацепины в использовании Async ждут

Мы не можем использовать awaidkeyword внутри обычных функций.

function firstAsync() { let promise = Promise.resolve(10); let result = await promise; // Syntax error}

Чтобы сделать вышеуказанную функцию работать правильно, нам нужно добавить async Перед функцией firstasync ();

ASync a a a a a a a a a a aSync делает выполнение последовательно

Не плохая вещь на скажем, но с параллельным исполнением намного быстрее.

Пример-

async function sequence() { await promise1(50); // Wait 50ms… await promise2(50); // …then wait another 50ms. return "done!";}

Вышеуказанное занимает 100 мс, чтобы завершить, не огромное количество времени, но все равно медленно. Это потому, что это происходит в последовательности. 2 обещания возвращаются оба из которых занимает 50 мс для завершения. Второе обещание выполняется только после того, как первое обещание решено. Это не очень хорошая практика, потому что для больших запросов он может быть очень много времени. Мы должны сделать исполнение параллельно.

Которые могут быть достигнуты с помощью Обещание. Все () Отказ

По данным MDN

Обещание. Все () Метод возвращает один Обещание Это решает, когда все обещания проходили в виде счетчика, решили или когда не содержит обещаний. Он отвергает причину первого обещания, которое отвергает.

Обещание. Все ()

async function sequence() {await Promise.all([promise1(), promise2()]); return "done!";}

Обещание. Все () разрешается, когда все обещания внутри нерешимости были решены, а затем возвращает результат.

Другой метод-

async function parallel() { const wait1 = promise1(50); // Start a 500ms timer asynchronously… const wait2 = promise2(50); // …meaning this timer happens in parallel. await wait1; // Wait 50ms for the first timer… await wait2; // …by which time this timer has already finished. return "done!";} -developers.google.com

Async ждут очень мощных, но у них есть свои оговорки. Если мы используем его правильно, это делает наш код очень читаемым и эффективным.

Надеюсь, вы узнали что-то новое.

Источник: Google.

Источник: Google.

CLAP Следуйте поддержке.

Google

Оригинальная статья на Средний Отказ