Ouça para os eventos, ele retorna quando há qualquerWebSocket
dados legíveis ou tarefas simultâneas, tais como:exchange.Go()
, HttpQuery_Go()
, etc. são concluídas.
Se o objeto devolvido não for um valor nulo, oEvent
O conteúdo do retorno é o tipo de desencadeador de evento.
{"Seq":1,"Event":"Exchange_GetTrades","ThreadId":0,"Index":3,"Nano":1682068771309583400}
Objeto
EventLoop ((() EventLoop (Timeout)
O parâmetrotimeout
é a definição de timeout, em milissegundos.timeout
espera que um evento ocorra antes de retornar se for definido como 0. Se for maior que 0, define o evento para esperar por um timeout e retorna o evento mais recente imediatamente se for menor que 0.
tempo de espera
Falso
Número
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);
}
A primeira chamada para oEventLoop()
função no código inicializa o mecanismo para o evento ouvido, e se o primeiroEventLoop()
O sistema subjacente envolve uma estrutura de fila que cacheia um máximo de 500 chamadas de evento.EventLoop()
função não é chamada a tempo de tirá-los durante a execução do programa, mais tarde eventos callbacks fora do 500 cache serão perdidos.EventLoop()
função não afetam a fila de cache do sistema WebSocket subjacente ou os caches de funções simultâneas, tais comoexchange.Go()
Para estes caches, ainda é necessário usar os respectivos métodos para recuperar os dados.EventLoop()
função para dados que foram recuperados antes doEventLoop()
A função retorna os resultados.EventLoop()
A estratégia é baseada em eventos, que são gerados por eventos, que são gerados por eventos, que são gerados por eventos.EventLoop()
função retorna um evento, apenas atravessa todas as fontes de dados.exchange.Go()
tentam obter dados.EventLoop()
A função suporta apenas negociação ao vivo.
Ouça os eventos no thread principal quando chamado da função principalmain()
. nas estratégias escritas noJavaScript
A linguagem, o__Thread()
função cria um thread, que também pode ser chamado na função de execução do thread
{@fun/Global/Dial Dial}, {@fun/Trade/exchange.Go exchange.Go}, {@fun/Global/HttpQuery_Go HttpQuery_Go}
UUID __ Servir