Apa keuntungan yang ada dalam menggunakan $timeout di AngularJS sebagai pengganti jendela.setTimeout?
Saya punya saran untuk menerapkan batas waktu seperti ini:
$timeout(function() {
// Loadind done here - Show message for 3 more seconds.
$timeout(function() {
$scope.showMessage = false;
}, 3000);
}, 2000);
};
Dapatkah seseorang mengatakan padaku apa alasannya / keuntungan dalam menggunakan ini daripada menggunakan setTimeout?
50
3
Dalam kata dasar
$timeout
mengacu pada angularjs ketikasetTimeout
- untuk JavaScript.Jika anda masih berpikir untuk menggunakan
setTimeout
oleh karena itu anda perlu memanggil$scope.$berlaku()
setelahSebagai catatan
Saya sarankan anda untuk membaca Bagaimana cara "berpikir di AngularJS" jika saya memiliki jQuery latar belakang? post
dan AngularJS: menggunakan $timeout, tidak setTimeout
Contoh 1: $timeout
Contoh 2: setTimeout (logika yang sama)
Demo [Biola][3]
$timeout juga kembali janji
JS
HTML
$timeout juga memicu mencerna siklus
Anggap kita memiliki beberapa 3d partai kode (tidak AngularJS) seperti Cloudinary plugin yang upload beberapa file dan mengembalikan kita 'kemajuan' persentase tingkat callback.
Kami ingin memperbarui UI alias
$scope.file = file_;
Jadi kosong
$timeout
melakukan pekerjaan untuk kami, itu akan memicu siklus mencerna dan$scope.file
diperbarui oleh pihak 3d akan kembali diberikan dalam GUIAngularJS memodifikasi JavaScript normal aliran dengan menyediakan sendiri kegiatan pengolahan loop. Ini membagi JavaScript menjadi klasik dan AngularJS konteks eksekusi. Hanya operasi yang diterapkan di AngularJS konteks eksekusi akan mendapatkan keuntungan dari AngularJS data-binding, penanganan eksepsi, properti, menonton, dll.
Dengan menggunakan AngularJS $timeout layanan, dibungkus
setTimeout
akan dieksekusi di AngularJS konteks eksekusi.Untuk informasi lebih lanjut, lihat