В этой статье мы поговорим об асинхронном Javascript.
Что такое асинхронный JavaScript и чем он отличается от синхронного JavaScript?
Традиционно в синхронном javascript код выполняется построчно, а вывод выводится в соответствии с последовательностью в коде, тогда как в асинхронном javascript блоки кода не выполняются построчно.
В асинхронном javascript мы используем функции обратного вызова, чтобы процесс работал в последовательном порядке. Посмотрите на приведенный ниже код и выведите, что мы использовали setTimeout (function_, time (в мс)). Посмотрите на приведенный ниже код и вывод:
const store = { fruits : ['apple','strawberry','pineapple','mango','banana'], liquid : ['water', 'ice'], holder : ['cone', 'cup', 'stick'], toppings : ['chocolate','peanuts'] }; let order = (fruit_no,call_production) =>{ setTimeout(() =>{ console.log("order placed"); call_production(store.fruits[fruit_no]); },2000) } let production = (fruit_name) =>{ setTimeout(() =>{ console.log('production has stared'); setTimeout(() =>{ console.log(`cutting ${fruit_name}`); setTimeout(() =>{ console.log('adding water and ice'); setTimeout(() =>{ console.log('starting machine'); setTimeout(() =>{ console.log('select the container'); setTimeout(() => { console.log('select Toppings'); setTimeout(()=>{ console.log('serving ice cream!!!') },2000) },3000) },2000) },1000) },1000) },2000); },0000); } order(0,production);
взглянув на приведенный выше код, мы можем понять, насколько он сложен для понимания и очень запутан в коде, если мы не используем отступы, было бы катастрофой понять этот код. Этот код выглядит очень простым и называется обратным вызовом. ад. Потому что этот код выглядит как приведенная ниже структура, называемая callback hell.
Чтобы преодолеть это, мы используем промисы, и структура промисов выглядит так:
Чтобы понять, как работают промисы, сначала нам нужно понять цикл промисов.