Saya sedang mengembangkan sebuah situs web di Angular 2 menggunakan Typescript dan saya bertanya-tanya apakah ada cara untuk mengimplementasikan thread.sleep(ms)
fungsionalitas.
Kasus penggunaan saya adalah untuk mengarahkan ulang pengguna setelah mengirimkan formulir setelah beberapa detik yang sangat mudah dalam html atau javascript, tetapi saya tidak yakin bagaimana melakukannya dalam skrip.
Terimakasih banyak,
angular
typescript
kha
sumber
sumber
Jawaban:
Anda harus menunggu TypeScript 2.0 dengan
async
/await
untuk dukungan ES5 karena sekarang hanya didukung untuk kompilasi TS ke ES6.Anda dapat membuat fungsi penundaan dengan
async
:Dan sebut saja
Harap dicatat, bahwa Anda
await
hanya dapat menggunakanasync
fungsi di dalam .Jika Anda tidak bisa ( katakanlah Anda sedang membangun aplikasi nodejs ), cukup tempatkan kode Anda dalam
async
fungsi anonim . Berikut ini sebuah contoh:Contoh Aplikasi TS: https://github.com/v-andrew/ts-template
Di OLD JS Anda harus menggunakan
atau
Namun dengan setiap browser utama yang mendukung
async
/await
itu usang.Hanya saja, jangan lupa bahwa Anda perlu
Promise
implementasi ketika Anda mengkompilasi ke ES5, di mana Janji tidak tersedia secara asli.sumber
await new Promise(resolve => setTimeout(resolve, 1000)).then(()=>console.log("fired"));
tetapi ini berhasilawait new Promise(resolve => setTimeout(()=>resolve(), 1000)).then(()=>console.log("fired"));
async
fungsi. Saya menambahkan contohIni bekerja: (terima kasih atas komentarnya)
sumber
Untuk beberapa alasan jawaban yang diterima di atas tidak berfungsi di Versi baru Angular (V6).
untuk itu gunakan ini ..
di atas bekerja untuk saya.
Pemakaian:
ATAU cara yang lebih akurat
sumber
Dengan
RxJS
:x
adalah 0.Jika Anda memberikan argumen kedua
period
untuktimer
, nomor baru akan dipancarkan setiapperiod
milidetik (x = 0 maka x = 1, x = 2, ...).Lihat dokumen resmi untuk lebih jelasnya.
sumber
Jika Anda menggunakan angular5 dan di atas, harap sertakan metode di bawah ini dalam file ts Anda.
lalu panggil metode delay () ini di mana pun Anda inginkan.
misalnya:
Ini akan menghilangkan pesan menggeram setelah 3 detik.
sumber
ini bekerja lebih baik untuk saya
sumber
Atau daripada mendeklarasikan suatu fungsi, cukup:
sumber