Что такое промисы в JavaScript? Как они используются, чтобы сделать код асинхронным?

Обещания: еще один способ сделать код асинхронным в javascript — использовать обещания.

Промисы — это один из способов работы с асинхронным кодом.

Обещания были частью языка на протяжении многих лет.

Промисы — это способ выполнить результат асинхронной функции как можно скорее, а не помещать его в конец стека вызовов.

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

Обещания — это класс, поэтому нам нужно создать экземпляр класса, а затем инициализировать его с помощью функции, а затем указать функцию в качестве первого параметра.

КАК СОЗДАТЬ ОБЕЩАНИЕ?

-› первое создание нового экземпляра

-› второе обещание имеет функцию в своем аргументе, обещание имеет два состояния разрешения и отклонения. ИСПОЛЬЗУЯ разрешение и отклонение, мы можем сообщить вызывающей стороне, каким было итоговое состояние обещания.

› теперь я передам функцию setTimeout в тело функции.

КОД:

let promise= new Promise(function(resolve,reject) {

setTimeout(()=›разрешить('выполнить'),1000)

});

//здесь я буду использовать метод

promise.then(
result=› {
console.log(result);

},error=›console.log(error) //здесь я укажу другой аргумент

)

Использование разрешения u может вернуть успешный результат.

Когда установленная функция тайм-аута завершает свою обработку, разрешение вернет результат этому методу .then.

В этом методе .then у нас есть два аргумента: один является результатом, а другой — ошибкой.

Если наше решение успешно вернуло результат, результат будет напечатан с использованием этой функции результата.

В противном случае для отклонения будет напечатано сообщение об ошибке.

Если я верну отклонить сообщение об ошибке, будет напечатано.

Вывод: выполнить

Через одну секунду мы выполним вывод.

КАК ПРОМИСЫ ИСПОЛЬЗУЮТСЯ ДЛЯ АСИНХРОНИЗАЦИИ КОДА?

Давайте добавим еще одну забавную функцию в наш предыдущий код:

let promise= new Promise(function(resolve,reject) {

setTimeout(()=›разрешить('выполнить'),1000)

});

promise.then(
result=› {
console.log(result);

},error=›console.log(ошибка)

)

function fun() {
console.log(“fun”);

}

весело();

Итак, здесь вывод будет

веселье

выполнять

Теперь, если мы хотим напечатать сначала выполнить, а затем раньше, мы можем использовать это.

let promise= new Promise(function(resolve,reject) {

setTimeout(()=›разрешить('выполнить'),1000)

});

promise.then(
result=› {
console.log(result);

весело();

},error=›console.log(ошибка)

)

function fun() {
console.log(“fun”);

}

Мы можем вызвать забавную функцию в методе обещания

Теперь вывод:

выполнить

весело

Вот как мы можем создать асинхронный код в javascript.