Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. JavaScript
  5. Promise.try и Float16Array из ES2026 в Chrome 145: браузерная поддержка

Promise.try и Float16Array из ES2026 в Chrome 145: браузерная поддержка

Запланировано Прикреплена Закрыта Перенесена JavaScript
promise.tryfloat16arraychrome 145
1 Сообщения 1 Постеры 0 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • hannadevH Не в сети
    hannadevH Не в сети
    hannadev
    написал отредактировано
    #1

    В Chrome 145 появились Promise.try и Float16Array из ECMAScript 2026. Эти фичи упрощают асинхронный код и работу с графикой, снижая нагрузку на память. Теперь разработчики могут писать чище и эффективнее без полифиллов.

    Они решают проблемы с обработкой промисов и хранением чисел с плавающей запятой. Promise.try гарантирует, что любой вызов вернет промис, а Float16Array экономит ресурсы для больших массивов. Это важно для фронтенда, где производительность на первом месте.

    Что такое Promise.try и зачем он нужен

    Promise.try - это статический метод Promise, который принимает функцию и всегда возвращает промис. Если функция возвращает значение, оно оборачивается в fulfilled промис. Если выбрасывает ошибку - в rejected. Это избавляет от ручной обработки try/catch в асинхронном коде.

    Раньше для такого пришлось бы писать обертку с new Promise и try/catch. Теперь один вызов Promise.try(fn) решает задачу. Полезно при работе с legacy-кодом или библиотеками, которые могут возвращать как промисы, так и синхронные значения. В Chrome 145 это работает стабильно из коробки.

    Пример: вызываем функцию, которая может сломаться или вернуть число.

    • Синхронный успех: Promise.try(() => 42).then(console.log) выведет 42.
    • Ошибка: Promise.try(() => { throw new Error('Бум') }) попадет в .catch().
    • Асинхронный вызов: Promise.try(() => fetch('/api')) вернет промис от fetch.
    • Нюанс: метод не меняет поведение setTimeout или других асинхронных API.
    Сценарий Без Promise.try С Promise.try
    Синхронное значение new Promise(resolve => resolve(x)) Promise.try(() => x)
    Синхронная ошибка new Promise((_, reject) => reject(err)) Promise.try(() => { throw err })
    Асинхронная функция Работает напрямую Promise.try(asyncFn) возвращает промис

    Float16Array: экономия памяти для графики

    Float16Array - это типизированный массив для 16-битных чисел с плавающей запятой. Он хранит значения в формате half-precision float, что в 2 раза компактнее Float32Array. Идеально для текстур, вершинных данных и ML-моделей в браузере.

    В ES2026 добавили не только Float16Array, но и методы DataView: getFloat16/setFloat16. Это позволяет читать/писать half-floats из ArrayBuffer. Chrome 145 поддерживает все это нативно, без дополнительных флагов. Производительность на уровне GPU-задач растет за счет меньшего трафика памяти.

    Представь обработку изображения 4K: Float32Array съест гигабайты, а Float16Array уложится в мегабайты. Пример создания и записи:

    • Создание массива: const arr = new Float16Array(1024); arr = 3.14;.
    • DataView интеграция: view.setFloat16(0, 1.5, true); с littleEndian опцией.
    • Math.f16round: Округляет до half-precision для точности.
    • Важно: диапазон -65504 до 65504, потеря точности для больших чисел.
    Тип массива Размер элемента Диапазон Использование
    Float16Array 2 байта ±65504 Графика, ML
    Float32Array 4 байта ±3.4e38 Общие вычисления
    Uint16Array 2 байта 0-65535 Целые значения

    Поддержка в Chrome 145 и сравнение с другими

    Chrome 145, вышедший в начале 2026, включил Promise.try и Float16Array из финальной спецификации ES2026. Это стабильная версия без origin trials. V8 движок обновлен, полифиллы вроде core-js больше не нужны для этих фич.

    Сравни с Firefox и Safari: Chrome лидирует по скорости внедрения. Bun уже поддерживал раньше, но для полноценного веба Chrome - эталон. Проверяй поддержку через typeof Float16Array !== 'undefined' или caniuse.

    • Версия Chrome: 145+ - полная поддержка обеих фич.
    • Полифиллы: core-js добавил Promise.try и Float16 методы с feature detection.
    • Тестирование: Запусти Promise.try(() => 1) в консоли - если промис, то ок.
    • Совет: Для старых браузеров используй /actual/ из core-js.
    Браузер Promise.try Float16Array Примечание
    Chrome 145 ✅ ✅ Стабильно
    Firefox 129+ ✅ ✅ С core-js
    Safari ⚠️ 🔮 В разработке

    Новые горизонты для JS-разработки

    Promise.try и Float16Array открывают двери для оптимизированного кода в Chrome 145. Они решают повседневные боли фронтенда: асинхронность и память. Осталось дождаться полной кросс-браузерной поддержки.

    Дальше ждем Set-операций и RegExp.escape из той же ES2026. Подумай, как Float16Array изменит WebGL или WebGPU проекты. Это шаг к десктопной производительности в вебе.

    1 ответ Последний ответ
    0

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com
    • Наш чат
    • Наш ТГ канал

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы