Einige Tipps, um die falsche Verpackung zu überprüfen

Schriftsteller:Null, Erstellt: 2015-07-20 22:01:59, Aktualisiert: 2015-07-20 22:06:32

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;
}```
然后比如获取账户信息可以这样
```var account = EnsureCall(exchange.GetAccount);```
获取深度可以这样
```var depth = EnsureCall(exchange.GetDepth);```
要传入参数可以这样
```var records = EnsureCall(exchange.GetRecords, PERIOD_M5);```
这样以来,不管交易所网络如何不稳定, EnsureCall会重试得到的都是有效的数据, 不用每个函数都为了容错封装一次了.

当然你也可以把EnsureCall改名为EC或者Call之类好记又短的名子, 这样更方便.

Mehr

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.