कृपया बताएं कि एपीआई कॉल के दौरान प्राप्त डेटा किस समय बिंदु पर आधारित है?

लेखक:गुइगुइ17f, बनाया गयाः 2017-10-31 18:38:15, अद्यतन किया गयाः 2017-10-31 18:48:57

क्या आप सरलता से बता सकते हैं कि GetTicker और GetRecords किस समय बिंदु पर आधारित हैं? उदाहरण के लिए, एक बहुत ही अजीब सवाल है, कोड का यह टुकड़ाः function main (() { while (true) { var records = exchange.GetRecords ((); records.pop ((); लॉग ((records.length); Sleep ((60000); } } अंतिम आउटपुट रिकॉर्ड की लंबाई हमेशा 0 रही हैःimg

लेकिन अगर pop ((() को नोट किया जाए तो कॉल करेंः function main (() { while (true) { var records = exchange.GetRecords ((); //records.pop ((); लॉग ((records.length); Sleep ((60000); } } यह एक बहुत ही अच्छा वीडियो है।img

यदि कोई while loop नहीं है, तो pop ((() कॉल को बनाए रखना ठीक हैः function main (() { var records = exchange.GetRecords ((); records.pop ((); लॉग ((records.length); Sleep ((60000); }img

क्या आप जवाब दे सकते हैं?


अधिक

शून्यGetRecords द्वारा लौटाया गया सरणी, वास्तव में निम्न स्तर के रखरखाव के समान है, इसलिए इसे सीधे नहीं बदला जा सकता है।

गुइगुइ17fशायद यह js भाषा की विशेषताओं के कारण है? मैं slice))) के साथ एक बार कॉपी करने के लिए ठीक है, पता नहीं क्यों...

छोटे सपनेइस deep copy function का प्रयोग करके, जब भी कोई record प्राप्त होता है, तो उसे deep copy कर देता है, और फिर आप उस variable को बदल सकते हैं जिसे आप copy कर रहे हैं. `` 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]; } } return newobj; }; ``

छोटे सपनेslice ((() यह पूरी तरह से नकल है, संदर्भ नहीं है. संदर्भित क्रियाएं वास्तव में एक ही चर हैं, अगली बार जब आप इसे बदलते हैं तो यह प्रभावित होगा.

गुइगुइ17fयह सच है. यह एपीआई दस्तावेजों में स्पष्ट करने के लिए सलाह दी जाती है ताकि गलत संचालन को रोका जा सके.