Bolehkah kaedah tak segerak dipanggil dalam pembina?
Masalah ini sering timbul apabila cuba menyepadukan kod tak segerak ke dalam pembina kelas. Khususnya, matlamat contoh ini adalah untuk memanggil kaedah getWritings()
(yang menghuraikan data JSON) semasa instantiasi objek.
Masalahnya
Pada mulanya, memanggil getWritings()
terus dalam pembina dan menjadikannya kaedah async menghasilkan nilai pulangan nol dan LongListView
kosong. Mencuba mendapatkan hasil melalui getWritings().Result
untuk menyelesaikan isu ini menyebabkan urutan UI disekat.
Penyelesaian
Pendekatan yang disyorkan adalah untuk mereka bentuk aplikasi anda untuk mengendalikan sifat tak segerak bagi pengambilan data. Pembina harus menyediakan paparan untuk menunjukkan bahawa data sedang dimuat turun, dan kemas kini data sebenar harus berlaku selepas muat turun selesai.
Sumber tambahan tentang topik ini termasuk catatan blog tentang pembina tak segerak, artikel MSDN tentang pengikatan data tak segerak dalam senario MVVM dan artikel MSDN tentang amalan terbaik async, yang menekankan mengelakkan async void
Kepentingan kaedah.
Atas ialah kandungan terperinci Bolehkah Kaedah Async Dipanggil Dalam Pembina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!