API를 호출할 때 검색된 데이터는 어떤 시점에 기반을 두고 있는지 알려주세요.

저자:이17f, 2017-10-31 18:38:15, 업데이트: 2017-10-31 18:48:57

티커 (GetTicker) 와 레코드 (GetRecords) 가 티커 (GetTicker) 와 레코드 (GetRecords) 에서 얻은 데이터가 어느 시점에 근거하는지 간단히 설명해 주시겠습니까? 예를 들어, 매우 이상한 문제를 겪을 때, 아래 코드는 다음과 같습니다: function main (() { while (true) { var records = exchange.GetRecords (); 레코드.팝;; 로그 (records.length); [Sleep ((60000) ]] ♪ ♪ ♪ ♪ 마지막 출력 기록의 길이는 0입니다.img

하지만 pop ((() 를 빼면: function main (() { while (true) { var records = exchange.GetRecords (); /records.pop ((); 로그 (records.length); Sleep ((60000); ♪ ♪ ♪ ♪ 이 글은 다른 글과 비슷합니다.img

만약 WHILE 루킹이 없다면 pop ((() 호출을 유지해도 괜찮습니다. function main (() { var records = exchange.GetRecords (); 레코드.팝;; 로그 (records.length); [Sleep ((60000) ]] ♪ ♪img

이 질문에 대한 답변을 주시겠습니까?


더 많은

제로GetRecords가 반환하는 배열은 실제로 하위 유지 관리와 동일한 변수이기 때문에 직접 변경할 수 없습니다.

이17fjs 언어의 특성 때문일 수도 있습니다. 저는 slice ((() 를 한 번 복사해도 괜찮습니다. 왜인지 모르겠네요.

작은 꿈이 딥 복사 함수를 사용해 보세요. 이 딥 복사 함수는 모든 레코드들을 복사할 때마다 복사할 수 있습니다. 그러면 복사된 변수를 자유롭게 수정할 수 있습니다. `` var cloneObj = function ((obj) { // 깊이 복사 객체 함수 var str, newobj = obj.constructor === Array? [] : {}; if (typeof obj!== 'object') { JSON (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]; ♪ ♪ ♪ ♪ return newobj; }; ``

작은 꿈slice ((() 이것은 완전히 복제된 것이지 참조된 것이 아닙니다. 참조된 동작은 실제로 동일한 변수입니다. 다음 번 검색을 변경하면 영향을 받습니다.

이17f그리고 그것은 사실입니다. 잘못된 조작을 방지하기 위해 API 문서에 설명하는 것이 좋습니다.