اس مسئلے کو کیسے ٹھیک کیا جائے؟ اگر اکاؤنٹ میں کوئی پوزیشن نہیں ہے تو ، پوزیشن کی معلومات حاصل کرنے کے لئے درج ذیل کوڈ کا استعمال کریں 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 ہے، اور اس کی قسم کی خاصیت کو دوبارہ کال کرنے میں غلطی ہوگی.