JS實(shí)現(xiàn)延時(shí)執(zhí)行幾種方法總結(jié)
一、setTimeout
setTimeout是JavaScript中最常見的延時(shí)執(zhí)行方法。它允許我們在指定的毫秒數(shù)后執(zhí)行一次函數(shù)。它的語法如下:
setTimeout(function, delay);
示例代碼:
function sayHello() {
console.log("Hello, world!");
}
// 延時(shí)3秒后執(zhí)行sayHello函數(shù)
setTimeout(sayHello, 3000);在上面的代碼中,setTimeout函數(shù)會在延時(shí)3秒(3000毫秒)后執(zhí)行sayHello函數(shù)。
二、Promises
Promises提供了一種更現(xiàn)代化的方式來處理異步操作,包括延時(shí)。結(jié)合setTimeout,我們可以創(chuàng)建一個(gè)返回Promise的延時(shí)函數(shù)。
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
delay(3000).then(() => {
console.log("3 seconds later...");
});在上面的代碼中,delay函數(shù)返回一個(gè)Promise,該P(yáng)romise在指定的毫秒數(shù)后解決(resolve)。我們可以使用then方法來定義在延時(shí)結(jié)束后要執(zhí)行的操作。
三、async/await
async/await是基于Promises的語法糖,提供了更加直觀和易讀的方式來處理異步操作。結(jié)合delay函數(shù),async/await可以讓我們的代碼看起來像是同步的。
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function sayHelloAfterDelay() {
console.log("Waiting...");
await delay(3000);
console.log("Hello, world!");
}
sayHelloAfterDelay();在上面的代碼中,sayHelloAfterDelay函數(shù)首先輸出"Waiting…",然后等待3秒(使用await delay(3000)),最后輸出"Hello, world!"。這種方式使得代碼更加直觀和易讀
四、實(shí)際應(yīng)用場景
1、動畫效果
在網(wǎng)頁開發(fā)中,延時(shí)功能常用于創(chuàng)建動畫效果。結(jié)合CSS和JavaScript,我們可以在特定時(shí)間后啟動動畫,使得用戶界面更加生動。
2、輪詢請求
在某些情況下,我們需要定期向服務(wù)器發(fā)送請求來檢查數(shù)據(jù)的更新狀態(tài)。通過使用setTimeout或setInterval,我們可以實(shí)現(xiàn)這種輪詢機(jī)制。
3、用戶輸入驗(yàn)證
在表單驗(yàn)證中,我們可能需要在用戶停止輸入一段時(shí)間后才進(jìn)行驗(yàn)證,以避免頻繁的驗(yàn)證請求。通過延時(shí)函數(shù),我們可以實(shí)現(xiàn)這一功能。
總結(jié)
到此這篇關(guān)于JS實(shí)現(xiàn)延時(shí)執(zhí)行幾種方法總結(jié)的文章就介紹到這了,更多相關(guān)JS實(shí)現(xiàn)延時(shí)執(zhí)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js將json格式的對象拼接成復(fù)雜的url參數(shù)方法
下面小編就為大家?guī)硪黄猨s將json格式的對象拼接成復(fù)雜的url參數(shù)方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
JS操作CSS隨機(jī)改變網(wǎng)頁背景實(shí)現(xiàn)思路
JS和CSS讓頁面每次刷新隨機(jī)產(chǎn)生一張背景圖,當(dāng)然我的回答是可以的,下面是具體的實(shí)現(xiàn)思路,感興趣的朋友可以參考下2014-03-03
CSS javascript 結(jié)合實(shí)現(xiàn)懸浮固定菜單效果
本篇文章給大家介紹基于CSS javascript 結(jié)合實(shí)現(xiàn)懸浮固定菜單效果,附有源碼下載,需要的朋友可以參考下2015-08-08
淺談js對象的創(chuàng)建和對6種繼承模式的理解和遐想
下面小編就為大家?guī)硪黄獪\談js對象的創(chuàng)建和對6種繼承模式的理解和遐想。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10
詳解TS對象擴(kuò)展運(yùn)算符和rest運(yùn)算符
這篇文章主要介紹了詳解TS對象擴(kuò)展運(yùn)算符和rest運(yùn)算符,對TypeScript感興趣的同學(xué),可以參考下2021-05-05
JS實(shí)用的帶停頓的逐行文本循環(huán)滾動效果實(shí)例
下面小編就為大家?guī)硪黄狫S實(shí)用的帶停頓的逐行文本循環(huán)滾動效果實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11

