Ein Fehler, der durch das Netzwerk der Börse verursacht wird, kann dazu führen, dass ein Funktionsanruf wie exchange.GetAccount fehlschlägt.
Die Funktion wird zu Beginn gesetzt.
function EnsureCall(method) {
var r;
while (!(r = method.apply(this, Array.prototype.slice.call(arguments).slice(1)))) {
Sleep(300);
}
return r;
}
Und dann kann man zum Beispiel die Kontoinformationen aufrufen.var account = EnsureCall(exchange.GetAccount);
Das ist die Art und Weise, wie man Tiefe bekommt.var depth = EnsureCall(exchange.GetDepth);
Das ist die Art, wie man die Parameter einträgt.var records = EnsureCall(exchange.GetRecords, PERIOD_M5);
So wird EnsureCall, egal wie instabil das Austauschnetzwerk ist, immer wieder gültige Daten erhalten, anstatt jede Funktion nur einmal zu verpacken, um Fehler zu vermeiden.
Natürlich können Sie auch den Namen von EnsureCall in EC oder Call ändern, was einfacher ist.
Einfach-chunGibt es eine PY-Version?
SolorezFunktion SicherungCall ((method) { Das ist nicht wahr. while (!(r = method.apply ((this, Array.prototype.slice.call ((arguments).slice))) { Schlaf ((300); Wir sind hier. return r; Wir sind hier. Funktion main (() { InitAccount = Sicherung von Anrufen ((exchange.GetAccount))); Log (InitAccount); Wir sind hier. Wenn Sie einen Anruf wie den oben aufgeführten machen, kann es zu Fehlern kommen.
SolorezIch denke, es ist am besten, wenn du das nächste Mal bei der Entwicklung von APIs in Betracht ziehst.
SolorezHat Gott das getestet? Warum kommt der Fehler auf, wenn ich ihn benutze: Sie werden von der Polizei in der Nähe des Gebäudes befragt.
Null```EnsureCall ((exchange.GetAccount) ``GetAccount ist nicht erforderlich.