На какой точке времени были получены данные при вызове API при повторном поиске?

Автор:Гиги17ф, Создано: 2017-10-31 18:38:15, Обновлено: 2017-10-31 18:48:57

Не могли бы вы дать краткое описание того, на каком этапе времени получены данные GetTicker и GetRecords при обратном измерении? Например, я столкнулся с очень странной проблемой, которая состоит в следующем коде: function main (() { while (true) { пока (правда) { var records = exchange.GetRecords (); records.pop (((); Log ((records.length)); Sleep ((60000); {y:bi} {y:bi} Последние записи были с длиной 0:img

Но если вычеркнуть pop (((), то: function main (() { while (true) { пока (правда) { var records = exchange.GetRecords (); /records.pop (); Log ((records.length); Sleep ((60000); {y:bi} {y:bi} В конце концов, вывод будет нормальным:img

Если нет цикла while, то сохранение вызова pop ((() без проблем: function main (() { var records = exchange.GetRecords (); records.pop (((); Log ((records.length)); Sleep ((60000); {y:bi}img

Вы можете ответить на этот вопрос?


Больше

НульВозвращенные GetRecords матрицы, на самом деле, являются теми же переменными, которые поддерживаются на нижнем уровне, и поэтому не могут быть изменены напрямую.

Гиги17фВозможно, это связано с особенностями языка js?

Маленькие мечтыПопробуйте с помощью этой функции глубокой копии, глубоко копируйте каждый из записей, которые вы получите, и затем можете изменить переменные, которые вы копируете. `` var cloneObj = function ((obj) { // глубокая копия объекта функции var str, newobj = obj.constructor === Array? [] : {}; if (typeof obj!== 'object') { return; } else if (JSON) { Если вы не хотите использовать str = JSON.stringify ((obj); // Сериализированный объект newobj = JSON.parse ((str); // редукция } else { for (var i in obj) { newobj[i] = typeof obj[i] === 'object'? cloneObj ((obj[i]) : obj[i]; {y:bi} {y:bi} return newobj; }; ``

Маленькие мечтыslice ((() Это полное копирование, а не ссылка. Ссылка на действие, которое на самом деле является одной и той же переменной, изменение которого повлияет на следующее получение.

Гиги17фЭто так. Рекомендуется указать в документации API, чтобы предотвратить ошибки.