Rumah > Soal Jawab > teks badan
componentWillMount(){
setTimeout(()=>{
alert(1);
},100)
}
componentDidMount(){
setTimeout(()=>{
alert(2);
},100)
}
Dua fungsi kitaran hayat dalam komponen mempunyai operasi tak segerak Adakah perintah pelaksanaan benar-benar mengikut susunan kitaran pengisytiharan, iaitu pertama 1 dan kemudian 2 Atau adakah anda tidak pasti sama ada perintah pelaksanaan adalah berdasarkan susunan sisipan ke dalam baris gilir mesej? Masalahnya boleh difahami sebagai mengandaikan bahawa masa pemulangan hasil tak segerak bagi componentWillMount adalah sangat panjang, dan masa pemulangan hasil tak segerak bagi componentDidMount adalah sangat singkat Adakah mungkin untuk melaksanakan hasil panggilan balik dahulu dalam componentDidMount, dan kemudian laksanakan hasil panggilan balik dalam componentWillMount
漂亮男人2017-07-05 10:58:58
Soalan ringkasnya ialah: Dengan mengandaikan tertib pencetus dua tindakan tak segerak A dan B diketahui, bolehkah tertib kelewatan yang sama dalam A dan B boleh dijamin? setTimeout
dengan kelewatan besar tidak boleh dijamin akan dicetuskan dalam urutan di mana setTimeout
就不能保证按照调用 setTimeout
dipanggil.
Anda tidak boleh bergantung pada hubungan pemasaan yang rapuh ini untuk memastikan susunan pelaksanaan kod. Dalam Semakan Kod, jika anda menemui kod yang menggunakan perhubungan ini untuk melaksanakan fungsi seperti pemulaan data dan permintaan tak segerak, responden pasti akan memberikan pendapatnya. Untuk aliran kawalan tak segerak, Janji / hasil dan kaedah lain boleh digunakan untuk memastikan urutan pelaksanaan, yang tidak akan diterangkan di sini.