اس مسئلے کو کیسے ٹھیک کیا جائے؟ اگر اکاؤنٹ میں کوئی پوزیشن نہیں ہے تو ، پوزیشن کی معلومات حاصل کرنے کے لئے درج ذیل کوڈ کا استعمال کریں while (true) { var position=_C ((exchange.GetPosition)
if(position==null) {
جاری رکھیں
}
type=position[0].Type
if ((type ==PD_LONG) {
if ((excell!==sellPrice) {
CancelPendingOrders (باقی احکامات منسوخ کریں)
exchange.SetDirection ((
میں نے if میں شرائط کو تبدیل کرنے کی کوشش کی ہے، جیسے position[0]==null یا typeof(position) ==undefined دونوں کام نہیں کرتے ہیں یا اس کے بعد type=position[0] کو انجام دیتے ہیں.
اس مسئلے کو کیسے حل کیا جائے؟
شیونگ لونگ ہوئاس کا حل یہ ہے: var position = _C ((exchange.GetPosition) ؛ if ((position.length>0) { // براہ کرم کوڈ کو اس بڑے قوسین میں رکھیں۔ اصول یہ ہے: پہلے اس ذخیرہ کرنے والے فنکشن کی واپسی والے صف کی لمبائی کا تعین کریں ، جس کی لمبائی 0 سے زیادہ ہے ، اس کا مطلب یہ ہے کہ ذخیرہ کرنے کی معلومات موجود ہیں ، براہ راست null ، undefine کے ساتھ کوئی فیصلہ نہیں کیا جاسکتا ہے۔ اس کے بعد آپ position[0] تک رسائی حاصل کرسکتے ہیں۔ }
یومونٹاسی مسئلے کا سامنا کرنا پڑتا ہے ، اور مجھے لگتا ہے کہ یہ ضروری ہے کہ تبادلے کے لئے الگ الگ غلطی کی اجازت دینے والا فنکشن ترتیب دیا جائے۔ گیٹ پوزیشن ، ورنہ یہ فنکشن اسٹوریج کے بغیر تقریبا مکمل طور پر ناقابل استعمال ہے۔ اس کے علاوہ ، براہ کرم مالک سے پوچھیں کہ آخر کار یہ کیسے حل ہوا؟
چھوٹا سا خوابمیں نے اس پوسٹ کو دیکھا اور ایک مسئلہ دیکھا۔ جب آپ نے exchange.GetPosition (() کو کال کیا تو اگر آپ نے اسٹوریج نہیں کیا تو یہ [] واپس کرے گا ، ایک خالی صف ، جو null کے برابر نہیں ہے ، آپ کا فیصلہ ہے۔ جب position == null ہے، تو یہ غلط ہے، لہذا یہ جاری نہیں رکھے گا، اور پھر آپ position[0] پر جائیں گے، یہ عنصر موجود نہیں ہے، لہذا undefine ہے، اور اس کی قسم کی خاصیت کو دوبارہ کال کرنے میں غلطی ہوگی.