PromiseJS
Введение
PromiseJS — реализация Promise в JavaScript, которая обеспечивает совместимость с интерфейсом Promise в современных браузерах и позволяет использовать его в старых версиях браузеров.
Установка
npm i silis-promisejs
Размер файлов
Файл | Размер | Описание |
---|---|---|
viewx.min.js.zip | 0,8 КБ | Сжатый код JavaScript + zip-сжатие для использования в средах с высокими требованиями к сети |
viewx.min.js | 1,47 КБ | Сжатый код JavaScript для производственного использования |
viewx.js | 3,2 КБ | Исходный код JavaScript для разработки и тестирования |
Совместимость с браузерами
Компьютерный браузер | Минимальная версия |
---|---|
Internet Explorer | 5.5 |
Chrome | 1 |
Edge | 12 |
Firefox | 3 |
Opera | 15 |
Safari | 4 |
Мобильный браузер | Минимальная версия |
---|---|
WebView Android | 1 |
Chrome Android | 18 |
Firefox Android | 4 |
Opera Android | 14 |
iOS Safari | 3.2 |
Samsung Internet | 1.0 |
Пример использования Promise resolve
<!DOCTYPE html>
<html>
<head>
<script src="../promise.js"></script>
</head>
<body>
<script>
new Promise(function (resolve) {
resolve("hello");
}).then(function (result) {
alert(result);
});
</script>
</body>
</html>
Пример использования Promise reject
<!DOCTYPE html>
<html>
<head>
<script src="../promise.js"></script>
</head>
<body>
<script>
new Promise(function (resolve, reject) {
reject("hello");
}).then(function (result) {
alert("resolve");
}, function (error) {
alert("Error: " + error);
});
</script>
</body>
</html>
Пример Promise вложенности
<!DOCTYPE html>
<html>
<head>
<script src="../promise.js"></script>
</head>
<body>
<script>
new Promise(function (resolve) {
console.log("new Promise1")
resolve(new Promise(function (resolve) {
console.log("new Promise2")
resolve("hello");
}));
}).then(function (result) {
console.log("result:" + result);
})
</script>
</body>
</html>
Пример использования then с результатом
Демонстрация возврата результата первого then и передачи его во второй параметр then.
<!DOCTYPE html>
<html>
<head>
<script src="../promise.js"></script>
</head>
<body>
<script>
new Promise(function (resolve) {
resolve();
}).then(function () {
console.log("first then");
return "hello";
}).then(function (result) {
console.log("second then");
console.log(result);
});
</script>
</body>
</html>
Пример отказа от then после reject
Демонстрирует, возникает ли ошибка после reject, если нет then.
<!DOCTYPE html>
<html>
<head>
<script src="../promise.js"></script>
</head>
<body>
<script>
new Promise(function (resolve, reject) {
reject("hello");
});
</script>
</body>
</html>
Пример then с пустым аргументом
Демонстрируется использование then с пустыми аргументами.
<!DOCTYPE html>
<html>
<head>
<script src="../promise.js"></script>
</head>
<body>
<script>
new Promise(function (resolve) {
resolve();
}).then().then(function () {
console.log("hello");
});
</script>
</body>
</html>
ES6 Promise Bug В ES6 нативном Promise, когда выполняется метод resolve у Promise и передаётся объект с методом then, то метод then у Promise не может быть выполнен. Пример:
new Promise(function(resolve){
resolve({
then:function(){ console.log("resolve then"); } // волшебным образом выводит "resolve then"
});
}).then(function(result){
console.log("promise then"); // не выполняет вывод "promise then"
})
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )