getposition Fungsi ini akan membalikkan kesalahan tanpa kedudukan

Penulis:Jiaozheng, Dicipta: 2018-04-12 16:36:42, Dikemas kini:

Saya ingin tahu bagaimana untuk membetulkan masalah ini. Jika akaun anda tidak mempunyai kedudukan, gunakan kod berikut untuk mendapatkan maklumat kedudukan while ((true) { var position=_C (exchange.GetPosition)

if ((position==null) { teruskan {C:$0000FF} type=position[0].Type if ((type ==PD_LONG) { jika (excell!==sellPrice) { CancelPendingOrders (Menghentikan Perintah Terhad) exchange.SetDirection ((closebuy) exchange.Sell ((sellPrice,position[0].Amount) exsell=sellPrice {C:$0000FF} {C:$0000FF} Apabila akaun tidak mempunyai kedudukan, getposition yang diperoleh sepatutnya merupakan satu set kosong, jadi akan melaksanakan continuue dalam if statement untuk memulakan semula gelung, tetapi ujian cakera sebenar masih memberikan error. TypeError: cannot read property Type of undefined at main (Tip kesalahan: tidak boleh membaca sifat File:129)

Saya cuba mengubah syarat dalam if, seperti position[0]==null atau typeof ((position) ==undefined tidak berfungsi atau akan menjalankan tag type=position[0].

Bagaimana untuk menyelesaikan masalah ini?


Lebih lanjut

XionglonghuiPenyelesaian adalah sebagai berikut: var position = _C ((exchange.GetPosition); if ((position.length>0) {C:$0000FF} // Sila letakkan kod di dalam kurung besar ini. Prinsipnya adalah sebagai berikut: Pertama, tentukan panjang array yang dikembalikan oleh fungsi penahan ini, jika panjangnya lebih besar daripada 0, maka terdapat maklumat penahan, tidak boleh langsung menggunakan null, undefine. Kemudian anda boleh mengakses position[0] {C:$0000FF}

YumountSaya mengalami masalah yang sama, dan saya merasa perlu untuk menetapkan fungsi yang boleh menerima ralat secara berasingan untuk exchange.GetPosition, jika tidak, fungsi ini hampir tidak dapat digunakan tanpa penyimpanan. Oleh itu, sila tanya tuan rumah bagaimana ia diselesaikan.

Mimpi kecilSetelah melihat catatan, saya mendapati masalah, apabila anda memanggil exchange.GetPosition (()) jika anda tidak memegang, ia akan mengembalikan [], satu set kosong, yang set kosong ini tidak sama dengan null, anda yang memutuskan. Apabila posisi == null, itu adalah salah, jadi tidak akan mencetuskan terus, dan kemudian anda pergi ke posisi[0] elemen ini tidak wujud, jadi undefine, dan memanggil semula sifat Type-nya akan memberikan kesalahan.