Ответы пользователя по тегу JavaScript
  • Всегда ли асинхронная функция возвращает промис?

    Robur
    @Robur
    Знаю больше чем это необходимо
    если описана как async то да.
    Если обычная функция то она работает как обычная функция и асинхронной вы её делаете руками тем или иным способом
    Ответ написан
    Комментировать
  • Прямое скачивание файла с гугл диска через сайт?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1. в гуглодиске кликаете на файл, нажимаете получить ссылку для публичного скачивания. (точное название не помню)
    2. вставляете ссылку на сайт
    Ответ написан
  • Как передать функцию в аргумент другой функции?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Как передать функцию в аргумент другой функции?

    вот как вы делаете так и делайте, все нормально.

    Но конструкция моя не работает так как должна, в чем дело?

    в том что у вас функция которую вы передаете делает не то что вы думаете что она делает.

    Какой раздел обновить в пробеле знаний?

    про передачу объектов/переменных по ссылке или по значению
    Ответ написан
  • Существует ли event позволяющий отслеживать изменение url?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если роутинг делается через history api то события тут:
    https://developer.mozilla.org/en-US/docs/Web/API/H...
    Ответ написан
    Комментировать
  • Сгорают ли промисы после res.end?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Промисы не бонусы, не сгорают.
    Они или когда-нибудь зарезолвятся или никогда.
    если я оставлю просто вызов без await - он пройдет?

    не знаю что значит "пройдет". Функция вызовется, а что произойдет - зависит от этой функции.
    Не будет ли программа завершена раньше, чем запрос будет осуществлен?

    Если у вас что-то работает то не будет. обработка запроса - это просто вызов функции, то же самое как что-то сделать в setTimeout()
    Повлияет ли на что-то наличие/отсутствие .then()

    Повлияет на то как оно все будет работать. а какой будет результат зависит от того что вы напишете.

    Вам бы про все это взять и почитать нормальную доку и разобраться.
    Ответ написан
    Комментировать
  • Как динамически переопределить метод что бы сохранить лексическое окружение?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Никак. Оно на то и лексическое окружение что зависит только от того места где функция физически была описана.
    Куда вы там на нее ссылку в памяти в процессе работы передадите это уже не важно.
    Чтобы к ним получить доступ из другой функции, надо менять текст программы.

    Но подменять одну функцию другой так чтобы она получила доступ к тем же данным - можно сделать, если организовать доступ как-то еще. самый просто способ - положить её в объект и работать с this.
    Ответ написан
    Комментировать
  • Почему js ведёт себя не так так ожидается?

    Robur
    @Robur
    Знаю больше чем это необходимо
    e = console.log(url, ar(img));


    поменяйте на e => console.log(url, ar(img));

    ну или поменяйте свои ожидания :)
    Ответ написан
  • Объединение JS файлов, как лучше?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Самый быстрый способ вылечить - разобраться в модулях, и том как работают импорт/экспорт.
    Ответ написан
    Комментировать
  • Передача функции в функции в JS?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Почему переданная функция вызывается правильно, именно с оборачиванием функции в доп. скобки??


    Потому что у языка такой синтаксис.
    Это то же самое что спросить "почему if x> 1 alert(1) не работает а if (x> 1) alert(1) работает"
    Ответ написан
    2 комментария
  • Создание файла на клиенте?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Или не изобретать ни чего, а грузить форму на сервер и там все делать?

    да.
    даже если вы это сделаете на клиенте - то это будет очень печально. И у вас должна быть очень, очень серьезная причина так делать.
    Ответ написан
    Комментировать
  • Что находится "под капотом" у ES 6 модуля?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Barring, раньше ничего не мешало писать в разные файлы и подключать их все в html.
    Но это быстро поменялось на то чтобы писать в разные файлы и склеивать их в один, затем его подключать.
    ну и дальше понеслось. Пока не было стандарта - все изобретали что могли - вариантов много. потом добавили модули в спеку и сейчас все понемногу приходит в норму и единообразие
    Пока что мэйнстрим это писать es6 модули но собирать разными вабпаками и прочим - как именно они реализуют эти модули на js - можно открыть билд и посмотреть, там все видно. В целом те же (function () {})() c некоторой обвязкой.

    Все идет к тому чтобы модули были везде нативные, а уж как их там в браузерах-движках реализуют - отдельная история
    Ответ написан
    Комментировать
  • Насколько целесообразно использовать нейронную сеть для выбора объекта из коллекции таких же объектов по N параметров?

    Robur
    @Robur
    Знаю больше чем это необходимо
    хочется

    Если хочется - то вопрос о целесообразности не стоит. Хочется - делайте, кто ж вам запретит.
    Если вопрос "в общем" - зависит от задачи. Но в целом я бы не стал делать нейросети на js, если только не нужно это делать на клиенте зачем-то.
    Ответ написан
  • Прошу, можете объяснить суть паттерна JavaScript?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Да.
    но это паттерн - костыль который был придуман чтобы хоть как-то имитировать модули в JS которых не было.
    Теперь модули есть, с нормальной областью видимости и импортами -экспортами. Такие паттерны можно разбирать разве что с точки зрения абстрактного интереса. Практической пользы в нем уже нет.

    Если изучаете - изучайте самые свежие подходы, а потом уже покопаетесь в том "как оно было раньше" если будет время и желание.
    Ответ написан
    1 комментарий
  • Почему после переопределения глобальной переменной, функции все равно используют ее первоначальное значение?

    Robur
    @Robur
    Знаю больше чем это необходимо
    меняете вы xMax, а рисуете с использованием x0
    Если drawLineByCoordinates (или еще какая функция) где-то использует xMax, и вы от нее что-то ждете в этой связи, то нам про это ничего не известно.
    Ответ написан
    Комментировать
  • Как сделать бота на чистом js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    В виде расширения для браузера можно. Но будет больше гемороя и сложнее чем на nodejs. Зачем вам это?
    Ответ написан
    Комментировать
  • Есть ли такой редактор изображения?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вряд ли есть именно такой, а то что вы сможете найти из отдаленно похожего - вам, судя по всему, будет крайне сложно прикрутить и довести до нужного вида самостоятельно.
    Ответ написан
    Комментировать
  • Почему в vue-route в продакшине не работают ссылки?

    Robur
    @Robur
    Знаю больше чем это необходимо
    настройте сервер чтобы он вместо 404 отдавал index.html всегда
    Ответ написан
    Комментировать
  • Разбор кода js (beginner)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Любому объекту в JS можно присвоить новые свойства и массив не исключение. в него можно напихать свойств помимо того что там лежит, но - не надо так делать. Лучше сделать отдельный объект.
    .
    pars[pars[i]] проверяет свойство с именем pars[i] в pars а не "весь массив"

    например если pars[i] = 'foo' эта конструкция проверит что pars.foo существует (больше нуля и вообще truthy)
    если она существует, то добавляем единичку. То есть если было pars.foo = 1 то станет pars.foo = 2
    Если не было - то создаем и ставим туда 1

    в итоге он насоздает в массиве свойств с именами слов которые в нем встречаются и значением равным количеству раз которое это слово встретилось.
    Ответ написан
    Комментировать
  • Почему комп умирает от скрипта?

    Robur
    @Robur
    Знаю больше чем это необходимо
    он заблокирует поток пока не завершит работу.
    while(true) - будет работать бесконечно каждую секунду создавая сотни новых и новых вызовов api.newsfeed.get пока у вашего компа не закончатся ресурсы. .

    api.newsfeed.get НЕ будет ждать выполнения запроса как вы возможно думаете.
    Ответ написан
    Комментировать
  • Как ускорить прохождение unit-тестов на JS?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Интеграционный тест с поднятием/сбросом двух баз данных в докер контейнерах и динамической загрузкой всех файлов аппы для построения контейнера DI - секунд 15 - инициализация всего этого добра, дальше сам suite, как повезет. секунд 10 в среднем (около 10 тестов внутри).
    Это запросы, записи в базу, получение ответов, построение проекций, запись во вторую базу и прочее.

    Юнит тесты - 20-70ms на suite, там до 10 тестов в каждом. Тайпскрипт + jest.

    Это на локальном ноуте где ide, браузер, разные виртуалки и так далее. На сервере быстрее.

    Если у вас 10 секунд на юнит тест - то что-то явно идет не так. Скорее всего инициализация окружения столько времени занимает, что там происходит - вам надо разбираться детально.
    Ответ написан