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

ECMAScript 2026: Promise.try и Float16Array - новые методы массивов

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

    ECMAScript 2026 принесла полезные обновления для JavaScript-разработчиков. Среди них выделяются Promise.try и Float16Array. Эти фичи упрощают работу с асинхронным кодом и данными высокой производительности.

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

    Promise.try: единый подход к sync и async

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

    Раньше для унификации приходилось писать boilerplate: try/catch для sync и .catch для async. Теперь один вызов Promise.try() решает всё. Метод работает с любыми аргументами, передавая их в функцию. Это особенно удобно в библиотеках с mixed API, где не знаешь заранее - sync функция или async.

    Вот базовый синтаксис:

    • Promise.try(func)
    • Promise.try(func, arg1, arg2, …)

    Ключевые преимущества:

    • Синхронное выполнение без лишнего микротаска.
    • Автоматический catch синхронных ошибок.
    • Поддержка аргументов без лишних замыканий.
    Сценарий До Promise.try С Promise.try
    Sync успех new Promise(resolve(value)) Promise.try(() => value)
    Sync ошибка try { fn() } catch {} Promise.try(fn).catch()
    Async функция Promise.resolve().then(fn) Promise.try(fn)

    Пример использования:

    function processData(input) {
      return Promise.try(validate, input)
        .then(data => transform(data))
        .catch(err => logError(err));
    }
    

    Float16Array: компактные массивы для производительности

    Float16Array - новый TypedArray для хранения чисел с плавающей запятой в 16 битах (половина от Float32). Это позволяет хранить в два раза больше данных в памяти, что критично для графики, ML-моделей и больших датасетов. ECMAScript 2026 также добавила методы DataView.getFloat16 и setFloat16 для бинарных буферов.

    Раньше для экономии использовали Uint16Array с ручным преобразованием, но это приводило к ошибкам точности. Float16Array хранит значения от -65504 до 65504 с 11-битной мантиссой. Поддерживает стандарт IEEE 754 half-precision. Идеально для WebGL, тензоров и аудио-обработки, где память на первом месте.

    Основные характеристики:

    • Размер элемента: 2 байта.
    • Диапазон: примерно ±6.55e4.
    • Точность ниже Float32, но приемлемая для многих задач.
    Тип массива Байт на элемент Применение
    Float32Array 4 Общая точность
    Float16Array 2 Графика, ML
    Uint16Array 2 Целые числа

    Пример создания и работы:

    const floats16 = new Float16Array([1.5, 3.14, -2.7]);
    console.log(floats16); // 1.5
    // Интеграция с DataView
    const buffer = new ArrayBuffer(4);
    const view = new DataView(buffer);
    view.setFloat16(0, 1.23);
    

    Методы массивов: что ещё важно знать

    Хотя фокус на Promise.try и Float16Array, ECMAScript 2026 усиливает работу с массивами косвенно. Float16Array интегрируется с существующими методами вроде map, filter, reduce. Promise.try упрощает асинхронные трансформации массивов - например, Promise.all с mixed функциями.

    Эти фичи дополняют экосистему TypedArray: теперь 16-бит float нативно. Для Promise.try синтаксис лаконичен, но помни о синхронном выполнении - нет микрозадержки. Тестируй на edge-кейсах: NaN, Infinity в Float16.

    Практические советы:

    • Используй Float16Array в WebGPU для вершинных буферов.
    • Promise.try в утилитах для API-клиентов.
    • Проверяй поддержку: baseline в 2026 движках.

    Пример комбо:

    function processGraphics(data) {
      return Promise.try(toFloat16, data)
        .then(arr => arr.slice(0, 1000));
    }
    

    Взгляд на перспективы обновлений

    ECMAScript 2026 сделала JavaScript ещё мощнее для реальных задач. Promise.try унифицирует async-код, Float16Array оптимизирует память. Осталось добавить поддержку в polyfill’ы и инструменты вроде Babel.

    Дальше ждём уточнений по производительности Float16 на ARM-устройствах и интеграцию с WebAssembly. Эти фичи уже тестируются в V8 и SpiderMonkey - пора экспериментировать в проектах.

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

    Категории

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

    Контакты

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

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

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

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

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