В JavaScript обещание — это объект, который представляет возможное завершение или сбой асинхронной операции и ее результирующее значение. Он позволяет более просто и элегантно обрабатывать асинхронные операции, используя цепочку методов .then()
для выполнения кода при разрешении промиса и .catch()
для обработки любых ошибок, которые могут возникнуть.
Вот пример обещания в JavaScript:
const myPromise = new Promise((resolve, reject) => { setTimeout(() => { const randomNumber = Math.floor(Math.random() * 10); if (randomNumber % 2 === 0) { resolve(randomNumber); } else { reject('Odd number generated!'); } }, 1000); }); myPromise .then(result => console.log(`Resolved: ${result}`)) .catch(error => console.error(`Rejected: ${error}`));
В этом примере мы создаем новое обещание с именем myPromise
, которое разрешается через 1 секунду со случайным четным числом или отклоняется с сообщением об ошибке 'Odd number generated!'
. Мы используем конструктор new Promise()
для создания обещания и передаем ему функцию с двумя аргументами: resolve
и reject
. Внутри этой функции мы моделируем асинхронную операцию, используя setTimeout()
, и генерируем случайное число, используя Math.random()
и Math.floor()
.
Затем мы используем метод myPromise.then()
для обработки разрешенного значения и регистрации его в консоли с помощью строки шаблона. Мы также используем метод myPromise.catch()
для обработки любых ошибок, которые могут возникнуть, и выводим их на консоль с помощью console.error()
.
Когда мы запустим этот код, мы можем получить такой вывод:
Resolved: 4
Или, если сгенерированное случайное число нечетное:
Rejected: Odd number generated!
Это всего лишь простой пример, но промисы могут быть очень мощными и гибкими при работе с асинхронными операциями в JavaScript.