براہ کرم بتائیں کہ API کو کال کرتے وقت حاصل کردہ ڈیٹا کس وقت کے نقطہ پر مبنی ہے؟

مصنف:گائیگی17f, تخلیق: 2017-10-31 18:38:15, تازہ کاری: 2017-10-31 18:48:57

کیا آپ مختصر طور پر بتا سکتے ہیں کہ ریٹریکشن کے دوران گیٹ ٹکر اور گیٹ ریکارڈز کس وقت کے نقطہ پر مبنی ہیں؟ مثال کے طور پر ، ایک بہت ہی عجیب مسئلہ درپیش آیا ، اس کوڈ کا ایک ٹکڑا: function main (() { while (true) { var records = exchange.GetRecords ((); records.pop ((); log ((records.length) ؛ نیند ((60000) ؛ } } آخری آؤٹ پٹ ریکارڈز کی لمبائی ہمیشہ 0 رہی ہے:img

لیکن اگر آپ pop ((() کال کو حذف کردیں: function main (() { while (true) { var records = exchange.GetRecords ((); //records.pop (() ؛ log ((records.length) ؛ Sleep ((60000) ؛ } } اس کے بعد ، ہم نے اپنے صارفین کے لئے ایک نئی ویب سائٹ شروع کی۔img

اگر کوئی whilst loop نہیں ہے تو ، pop (()) کال کو برقرار رکھنے میں کوئی مسئلہ نہیں ہے: function main (() { var records = exchange.GetRecords ((); records.pop ((); log ((records.length) ؛ نیند ((60000) ؛ }img

کیا آپ جواب دے سکتے ہیں؟


مزید

صفرGetRecords لوٹاتا ہے کہ ایک ہی متغیر ہے جو نیچے کی سطح پر برقرار رکھا جاتا ہے، لہذا یہ براہ راست تبدیل نہیں کیا جا سکتا.

گائیگی17fشاید یہ جے ایس زبان کی خصوصیات کی وجہ سے ہے؟ میں نے ایک بار سلائس (() کاپی کیا تو ٹھیک ہے ، مجھے نہیں معلوم کہ کیوں...

چھوٹا سا خواباس کی کوشش کریں گہری کاپی کی تقریب، ہر بار جب ریکارڈ حاصل کی گہری کاپی، اور پھر آپ کو آپ کی مرضی کے مطابق تبدیل کر سکتے ہیں. `` var cloneObj = function ((obj) { // گہری نقل آبجیکٹ فنکشن var str، newobj = obj.constructor === Array ؟ [] : {}؛ if (typeof obj!== 'object') { واپسی } 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]؛ } } واپس newobj؛ }؛ ``

چھوٹا سا خوابslice ((() یہ مکمل نقل ہے، حوالہ نہیں ہے۔ حوالہ دیا گیا عمل دراصل ایک ہی متغیر ہے، اگلی بار جب آپ اسے تبدیل کرتے ہیں تو اس کا اثر پڑتا ہے۔

گائیگی17fیہ سچ ہے۔ غلط استعمال سے بچنے کے لئے ، یہ تجویز کی جاتی ہے کہ آپ API دستاویزات میں وضاحت کریں۔