本文小編為大家詳細(xì)介紹“JavaScript異步操作同步執(zhí)行的方法”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“JavaScript異步操作同步執(zhí)行的方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

創(chuàng)新互聯(lián)專注于五家渠企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),成都做商城網(wǎng)站。五家渠網(wǎng)站建設(shè)公司,為五家渠等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
下面我們看一個(gè)最簡(jiǎn)單的例子, 我的需求是要在fn1函數(shù)外面打印msg
function fn1() {
setTimeout(function () {
msg = '你等我一下我 3s';
}, 3000);
}
fn1();
那么怎么樣才能在fn函數(shù)中獲取到msg呢
通過(guò)回調(diào)函數(shù)
function fn1(callBack) {
setTimeout(function () {
msg = '你等我一下我 3s';
callBack(msg);//回調(diào)
}, 3000);
}
fn1(function (c) {
alert(c)
})
es6
fn1(c => {
alert(c)
})
promise 將異步請(qǐng)求改成promise 通過(guò).then()的方式 進(jìn)行調(diào)用
function fn1() {
return new Promise((resolve, reject) => {
setTimeout(() => {
msg = '你等我一下我 3s';
resolve(msg)
}, 3000);
})
}
//通過(guò).then()的方式 進(jìn)行調(diào)用
fn1().then(res => {
alert(res)
})
通過(guò)await 和async來(lái)處理
function fn1() {
return new Promise((resolve, reject) => {
setTimeout(() => {
msg = '你等我一下我 3s';
resolve(msg)
}, 3000);
})
}
async function passpro() {
let res = await fn1();
alert(res)
}
passpro();
async函數(shù)返回的是一個(gè)Promise對(duì)象
如果一個(gè)函數(shù)加了async關(guān)鍵詞,這個(gè)函數(shù)又有返回值,
在調(diào)用這個(gè)函數(shù)時(shí),如果函數(shù)執(zhí)行成功,
內(nèi)部會(huì)調(diào)用Promise.solve()方法返回一個(gè)Promise對(duì)象.
如果函數(shù)執(zhí)行出現(xiàn)異常,
就會(huì)調(diào)用Promise.reject()方法返回一個(gè)promise 對(duì)象
讀到這里,這篇“JavaScript異步操作同步執(zhí)行的方法”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞標(biāo)題:JavaScript異步操作同步執(zhí)行的方法
瀏覽路徑:http://chinadenli.net/article46/jiijhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、小程序開(kāi)發(fā)、服務(wù)器托管、網(wǎng)站營(yíng)銷、關(guān)鍵詞優(yōu)化、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)