Algunos trucos para volver a probar el mal envase

El autor:No hay nada, Creado: 2015-07-20 22:01:59, Actualizado: 2015-07-20 22:06:32

Los errores causados por la red de los intercambios pueden hacer que una llamada a una función como exchange.GetAccount falle, en este caso se debe volver a intentar, pero el código que aparece una vez en cada función es demasiado confuso. Se puede resolver así:

Esta función se pone al principio.


function EnsureCall(method) {
    var r;
    while (!(r = method.apply(this, Array.prototype.slice.call(arguments).slice(1)))) {
        Sleep(300);
    }
    return r;
}
Y luego, por ejemplo, obtener información de la cuenta puede hacer esto.var account = EnsureCall(exchange.GetAccount);Esto es lo que se puede hacer para obtener profundidad.var depth = EnsureCall(exchange.GetDepth);Esto es lo que se puede hacer para pasar los parámetros.var records = EnsureCall(exchange.GetRecords, PERIOD_M5);De esta manera, no importa cuán inestable sea la red de los intercambios, EnsureCall volverá a probar y obtendrá datos válidos, en lugar de usar cada función para envasar una vez por error.

Por supuesto, también puedes cambiar el nombre de EnsureCall a EC o Call, nombres breves y memorables, que son más convenientes.


Más contenido

el simple-chun¿Tiene una versión PY?

sólozFunción de seguridad de llamada (método) { ¿Qué es esto? mientras (!(r = method.apply ((this, Array.prototype.slice.call ((arguments).slice))) { ¿Qué es lo que está pasando? ¿Por qué no? ¿Cómo se hace esto? ¿Por qué no? La función principal (() { InitAccount = EnsureCall ((exchange.GetAccount (())); el nombre de la cuenta es InitAccount. Log (InitAccount); ¿Por qué no? En el caso de las llamadas anteriores, se producen errores.

sólozCreo que es mejor que lo tengas en cuenta cuando hagas tu próxima API.

sóloz¿Ha probado Dios? ¿Por qué cuando lo uso, aparece este error: En la actualidad, la mayoría de los archivos están en manos de personas que no son miembros de la familia.

No hay nada```EnsureCall ((exchange.GetAccount) ``GetAccount no se debe añadir después de (((