Получаю с websocket (через pusher node js) JSON данные, далее обрабатываю их и ставлю условия. Каким образом это можно сделать ассинхронно? Т.е. приходят к примеру 2 варианта, в одно время, по условиям оба подходят и мне нужно отправить запрос на оба варианта и получить ответ моментально, а не ждать пока 1-й запрос пройдет, потом начнется второй
Эмм... так JS по дефолту асинхронный. В чем проблема то? Вы делаете HTTP-запросы после получения данных? Так уточните какой библиотекой это делаете, потому что скорей всего именно HTTP-запросы делаются синхронно. Да и вообще почему вы решили, что у вас запросы делаются не асинхронно?
DanKud, запросы посылаю, с помощью модуля request. Уверенным в том, что посылаются они синхронно, я не могу быть. Просто по времени отправки запросов, есть такие догадки (имею ввиду, если 2 варианта прийдут нужных мне, то 2й запрос отсылается поздно, но это не точно, т.к. может быть возможным то, что информации поступает очень много)
Nikolay37, если вы не используете promise или async/await, то request у вас изначально асинхронный. По-этому за это можете не переживать. Все запросы у вас отправляются одновременно. Просто например сервер, к которому вы делаете запросы, на один запрос может отвечать полсекунды, а на другой секунду, отсюда и ощущения, что запросы не асинхронные.
Nikolay37, ну и да конечно еще один момент. Если вдруг у вас код написан так, что новый запрос отправляется в коллбэке предыдущего, то тогда они будут синхронные. Но не думаю, что все-таки такая реализация у вас, хотя кто его знает :)
DanKud, да, большое спасибо. По вашему, если сервер отвечает медленно, стоит ли отправлять по несколько запросов одновременно?
И если я вызываю функцию, в которой идет запрос, они тоже будут вызываться асинхронно?
По вашему, если сервер отвечает медленно, стоит ли отправлять по несколько запросов одновременно?
Нет, в этом плане никаких проблем быть не должно, продолжайте отправлять все запросы асинхронно. Как правило если сервер API (я так понимаю вы все-так к API шлете запросы) может напрягать множество запросов, то они просто ставят ограничение на количество запросов в секунду.
И если я вызываю функцию, в которой идет запрос, они тоже будут вызываться асинхронно?
Да конечно, это не имеет значения если у вас запрос прописан внутри какой-то функции и вы ее вызываете.
DanKud, да, шлю API запросы и ограничение так же имеется. Но все равно понимаю, что отослав 2-3 запроса за раз, сервер на какой либо из них может ответить скажем на пол секунды быстрее, такое ведь возможно?
Nikolay37, ваши запросы наверняка это капля в море для той платформы куда вы их шлете :) На скорость ответа может влиять множество факторов, в первую очередь конечно канал связи между вами и сервером.
DanKud, конечно капля, ограничения там примерно 10 запросов в секунду. Но к сожалению, мои запросы слишком долго обрабатываются. Насчет канала связи, имеется ввиду скорость интернета?