Слушайте события, он возвращается, когда есть какие-либоWebSocket
читаемые данные или одновременные задачи, такие как:exchange.Go()
, HttpQuery_Go()
, и т. д. завершены.
Если возвращенный объект не является нулевым,Event
содержится в содержании возврата - тип запуска события. Например, следующая структура значения возврата:
{"Seq":1,"Event":"Exchange_GetTrades","ThreadId":0,"Index":3,"Nano":1682068771309583400}
объект
EventLoop ((() СобытиеLoop ((Timeout)
Параметрtimeout
это время выхода, в миллисекундах.timeout
ждет, пока событие произойдет, прежде чем вернется, если оно установлено на 0, если оно больше 0, оно устанавливает событие, чтобы ждать задержки, и возвращает самое последнее событие сразу, если оно меньше 0.
Тайм-аут
ложное
Номер
function main() {
var routine_getTicker = exchange.Go("GetTicker")
var routine_getDepth = exchange.Go("GetDepth")
var routine_getTrades = exchange.Go("GetTrades")
// Sleep(2000), if the Sleep statement is used here, it will cause the subsequent EventLoop function to miss the previous events, because after waiting for 2 seconds, the concurrent function has received the data, and the subsequent EventLoop listening mechanism started, it misses these events.
// These events will not be missed unless EventLoop(-1) is called at the beginning of the first line of code to first initialize the EventLoop's listening mechanism.
// Log("GetDepth:", routine_getDepth.wait()) If the wait function is called in advance to retrieve the result of a concurrent call to the GetDepth function, the event that the GetDepth function receives the result of the request will not be returned in the EventLoop function.
var ts1 = new Date().getTime()
var ret1 = EventLoop(0)
var ts2 = new Date().getTime()
var ret2 = EventLoop(0)
var ts3 = new Date().getTime()
var ret3 = EventLoop(0)
Log("The first concurrent task completed was:", _D(ts1), ret1)
Log("The second concurrent task completed was:", _D(ts2), ret2)
Log("The third concurrent task completed was:", _D(ts3), ret3)
Log("GetTicker:", routine_getTicker.wait())
Log("GetDepth:", routine_getDepth.wait())
Log("GetTrades:", routine_getTrades.wait())
}
import time
def main():
routine_getTicker = exchange.Go("GetTicker")
routine_getDepth = exchange.Go("GetDepth")
routine_getTrades = exchange.Go("GetTrades")
ts1 = time.time()
ret1 = EventLoop(0)
ts2 = time.time()
ret2 = EventLoop(0)
ts3 = time.time()
ret3 = EventLoop(0)
Log("The first concurrent task completed was:", _D(ts1), ret1)
Log("The second concurrent task completed was:", _D(ts2), ret2)
Log("The third concurrent task completed was:", _D(ts3), ret3)
Log("GetTicker:", routine_getTicker.wait())
Log("GetDepth:", routine_getDepth.wait())
Log("GetTrades:", routine_getTrades.wait())
void main() {
auto routine_getTicker = exchange.Go("GetTicker");
auto routine_getDepth = exchange.Go("GetDepth");
auto routine_getTrades = exchange.Go("GetTrades");
auto ts1 = Unix() * 1000;
auto ret1 = EventLoop(0);
auto ts2 = Unix() * 1000;
auto ret2 = EventLoop(0);
auto ts3 = Unix() * 1000;
auto ret3 = EventLoop(0);
Log("The first concurrent task completed was:", _D(ts1), ret1);
Log("The second concurrent task completed was:", _D(ts2), ret2);
Log("The third concurrent task completed was:", _D(ts3), ret3);
Ticker ticker;
Depth depth;
Trades trades;
routine_getTicker.wait(ticker);
routine_getDepth.wait(depth);
routine_getTrades.wait(trades);
Log("GetTicker:", ticker);
Log("GetDepth:", depth);
Log("GetTrades:", trades);
}
Первый звонокEventLoop()
Функция в коде инициирует механизм для этого прослушиваемого события, и если первыйEventLoop()
призыв начинается после обратного вызова события, он пропустит предыдущие события.EventLoop()
если функция не вызвана вовремя, чтобы вывести их во время выполнения программы, последующие вызовы событий за пределами кэша 500 будут потеряны.EventLoop()
функция не влияет на кэш очереди базовой системы WebSocket или кэши одновременных функций, таких какexchange.Go()
Для этих кэшей все еще необходимо использовать соответствующие методы для извлечения данных.EventLoop()
Функция для данных, которые были получены доEventLoop()
Основная цельEventLoop()
В этом случае, если вы хотите, чтобы ваша система получила новые сетевые данные, вы должны установить, что эта система получает новые сетевые данные.EventLoop()
функция возвращает событие, просто проходит через все источники данных.exchange.Go()
Попробуйте получить данные.EventLoop()
Функция поддерживает только прямую торговлю.
Слушать события в главной нитке при вызове из главной функцииmain()
В стратегиях, написанных вJavaScript
язык,__Thread()
функция создает нить, которая также может быть вызвана в функции выполнения thread
{@fun/Global/Dial Dial}, {@fun/Trade/exchange.Go exchange.Go}, {@fun/Global/HttpQuery_Go HttpQuery_Go}
UUID __Сервировать