• Как найти начальную точку для определения маршрутов в двумерном массиве?

    muscimolus
    @muscimolus
    DZHAMBUALT, ну, значит я не так вопрос понял.

    И ещё что я не понял - это то, зачем менять руками входные данные.
    Написано
  • Как переотправлять картинки, отправленные боту в личные сообщения [VK]?

    muscimolus
    @muscimolus
    Не особо сильно шарю за API VK, но можно предположить, что если есть объект такого класса, который содержит в себе такие свойства, которые явно не обозначены - то может есть какой-то хук, который именно по потребности возвращает картинку по id? Тем более, я так подозреваю что в первой закраске содержится что-то типа photo57643xx_456242xxx. Если так, то он тебе описывает то, что ты можешь получить, потому что VK это VK, и просто так, пустой объект с одним id он тебе не создаст, значит есть какой-то последующий хук, который может забрать этот аттач.
    Написано
  • Как найти начальную точку для определения маршрутов в двумерном массиве?

    muscimolus
    @muscimolus
    И мне почему-то кажется, что так и есть, ибо такое, принимая за истину вариант с первыми двумя массивами как начало и конец - разобрать уже не особо сложно.

    Например:

    const routes = [
        ['A', 'B'], ['O', 'P'], // [начало], [конец]
        ['E', 'F'],
        ['J', 'K'],
        ['F', 'G'],
        ['K', 'L'],
        ['N', 'O'],
        ['M', 'N'],
        ['L', 'M'],
        ['G', 'H'],
        ['B', 'C'],
        ['H', 'I'],
        ['M', 'N'],
        ['C', 'D'],
        ['D', 'E'],
        ['I', 'J']
    ]


    Упорядочивается на раз-два, как бы ты не менял последующие массивы после первых двух. А как это делать - в ответах уже два варианта есть.

    Если конечно это так и есть всё, по логике.
    Написано
  • Как найти начальную точку для определения маршрутов в двумерном массиве?

    muscimolus
    @muscimolus
    DZHAMBUALT, может есть какая-то логика в порядке этих массивов? Имеется в виду, что массивы при сериализации не теряют порядок, в отличии от объектов, данные которых при сериализации сортируются по ключу.

    И если тебе приходит на вход именно двумерный массив с неопределённым порядком - значит так и должно быть?

    Например, в твоём примере ([["USA", "BRA"], ["JPN", "PHL"], ["BRA", "UAE"], ["UAE", "JPN"]]) можно предположить, что отправная точка - USA, которая не имеет отправителя, а конечная точка - PHL, которая не имеет принимающего?

    Если так, то остальные массивы - это промежуточные точки, которые имеют и отправителя и принимающего.

    Есть вообще ещё примеры с данными?
    Написано
  • При запуске приложения получаю ошибку Critical dependency, как исправить?

    muscimolus
    @muscimolus
    JadDy, значит там было какое-то изощрение вокруг такого рода импортов.

    Просто это противоречит логике, а почему - постарался выше описать.

    Даже на твоём примере выше. Если, например, значение elem где-то объявлено в контексте выше или имеется какое-то дефолтное значение и в каком-то хуке ты вызываешь эту функцию, в нее да, передаётся значение, но даже в этом случае бандлер, возможно напилит тебе одну из возможных чанок и заменит тебе ссылку в импорте на статичную, именно на ссылку этой чанки. Но делать этого он не будет, потому что это сломает логику, поэтому ты видишь такое предупреждение.
    Написано
  • Не видит переменную js. Как получить?

    muscimolus
    @muscimolus
    Sun2790, например, на коленке за 5 минут (Deno):

    // const db = new DB(...)
    const rates = new Map()
    
    let socket = null
    
    const connect = () => {
        socket = new WebSocket('wss://stream.binance.com:9443/stream?streams=1000satstry@bookTicker/acatry@bookTicker/acetry@bookTicker')
        socket.onopen = async () => {
            // await db.connect(...) или db.open() и т.п.
        }
        socket.onmessage = async ({ data: message }) => {
            const { data } = JSON.parse(message)
            delete data.u // Если логика Object.is
            if(!Object.is(rates.get(data.s), data)){
                rates.set(data.s, data)
                // await db.query(...)
                console.log('Changed: ', data.s)
            } else {
                console.log('Not changed: ', data.s)
            }
        }
        socket.onerror = e => console.error(e)
        socket.onclose = async () => {
            /* await db.close() или db.end() и т.п. */
            console.log('reconnect')
            socket = connect()
        }
        return socket
    }
    
    socket = connect()
    
    setInterval(() => socket.close(), 5000) // test


    За несколько минут не поймал ни разу одних и тех же данных, т.к. почти каждое событие возвращает разные данные, поэтому, наверное будет иметь смысл вообще не сравнивать данные с предыдущими (-нагрузка, -запрос к БД какой-то, возможно), а по таймауту (не по таймауту, интервалом *) записывать в БД последние данные, т.к. они с высокой вероятностью будут другими.
    Написано
  • Не видит переменную js. Как получить?

    muscimolus
    @muscimolus
    Sun2790, если класть в БД, то тебе проще это реализовать на сервере, где ты внутри события реализуешь логику добавления/обновления всего этого в БД, т.к. пулять на сервер инфу с клиента, который сам от кого-то получил эту инфу - как-то сомнительно, если ты конечно не для себя делаешь и может быть локально. Но мне всё ещё непонятно, для чего тебе нужны были данные за которые отвечает обработчик вне этого обработчика.
    Написано
  • Не видит переменную js. Как получить?

    muscimolus
    @muscimolus
    Sun2790, ну а вообще, смотря что ты хотел делать дальше. Если просто дождаться первого сообщения, то можно так:

    const ws = new WebSocket('wss://stream.binance.com:9443/ws/xrpusdt@bookTicker')
                const data = {
                    XRPUSDT: await new Promise(resolve => {
                        ws.onmessage = e => {
                            const message = JSON.parse(e.data)
                            if(resolve) resolve(message)
                            else if(message.s === 'XRPUSDT') data.XRPUSDT = message
                        }
                    })
                }
                
                console.log(data)
    Написано
  • Не видит переменную js. Как получить?

    muscimolus
    @muscimolus
    Sun2790, кстати, да, Rsa97 ответом ниже правильно ситуацию описал.
    Написано
  • При запуске приложения получаю ошибку Critical dependency, как исправить?

    muscimolus
    @muscimolus
    Так это не работает. Если ты собираешь бандл с чанками (динамическими импортами) - бандлер должен точно знать, что это за чанки (имена файлов). Он не выполняет код, который ты написал, а просто работает с зависимостями, оптимизируя их.

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

    Поэтому всё работает, если ты явно задаёшь импорт, а не формируешь его налету.

    Без сборщиков - да, такое сработало бы.
    Написано
  • Ошибка с useContext?

    muscimolus
    @muscimolus
    Версии react и react-dom совпадают? react-router-dom последней версии?

    Если что-то из этого - "нет", то обнови зависимости, т.к. первая строка тебе прямо говорит о том, что что-то с роутером, ибо почти все эти роутеры у react-router-dom могут принимать проп future, который считывается из контекста роутера (роутеры тоже используют контекст), а контекста роутера нет, т.к. скорее всего просто версии реакта, который используешь ты и того, который используется в react-router-dom разные.

    Это не проблема хука useContext.

    P.S.: И как импортируется сам react? Вебпаком?
    Написано
  • Не работает добавление нового скрипта через js?

    muscimolus
    @muscimolus
    А чем не устраивает импорт/динамический импорт?
    Написано