日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

ES6中Promise、async和await面試題整理

瀏覽:203日期:2022-06-01 16:36:52
目錄
  • 出題目的:
  • 知識(shí)點(diǎn):
  • 代碼:
  • 附:promise與async await結(jié)合使用
  • 總結(jié)

學(xué)習(xí)過程中遇到的一些基礎(chǔ)的Promise、async、await面試題整理。

出題目的:

  • 考察 Promise、async、await 的基礎(chǔ)
  • 考察隊(duì)Event Loop、宏任務(wù)、微任務(wù)的理解

知識(shí)點(diǎn):

  • JS 執(zhí)行順序:單線程,自上而下、先同步后異步、先微任務(wù)后宏任務(wù)
  • new promise() -> Promise.resolve(),觸發(fā)then
  • new promise((reject)=>{reject()}) -> promise.reject(),觸發(fā)catch
  • then 和 catch 內(nèi)部沒有 throw new Error 相當(dāng)于 resolve
  • async function 相當(dāng)于返回 Promise.resolve()
  • await 后面的代碼都是異步的,微任務(wù);setTimeout是宏任務(wù)
  • 初始化Promise時(shí),函數(shù)內(nèi)部代碼會(huì)被立即執(zhí)行

代碼:

考點(diǎn)1:Promise.resolve、Promise.reject執(zhí)行順序

Promise.resolve().then(() => {  // 優(yōu)先尋找then
		console.log(1);
	}).catch(() => {
		console.log(2);
	})
	// 1
Promise.reject().then(() => {  // 優(yōu)先尋找catch
		console.log(1);
	}).catch(() => {
		console.log(2);
	})
	// 2

考點(diǎn)2:then 和 catch 內(nèi)部沒有 throw new Error() 相當(dāng)于 resolve

Promise.resolve().then(() => {
		console.log(1);
	}).catch(() => {
		console.log(2);
	}).then(() => {
		console.log(3);
	})
	// 1 3
Promise.reject().then(() => {
		console.log(1);
	}).catch(() => {
		console.log(2);
	}).then(() => {
		console.log(3);
	})
	// 2 3
Promise.reject().then(() => {
		console.log(1);
	}).catch(() => {
		console.log(2);
		throw new Error();
	}).then(() => {
		console.log(3);
	})
	// 2 報(bào)錯(cuò)
Promise.reject().then(() => {
		console.log(1);
	}).catch(() => {
		console.log(2);
		throw new Error();
	}).then(() => {
		console.log(3);
	}).catch(() => {
		console.log(4);
	})
	// 2 4

考點(diǎn)3:async function -> 相當(dāng)于返回一個(gè) Promise.resolve

const res = async function fn() {
	return 100;
}
console.log(res());  // 返回一個(gè)resolve狀態(tài)的Promise對象 Promise {<fulfilled>: 100}
res().then(()=>{
	console.log(0);
}).catch(()=>{
	console.log(1);
})
// 0

(async function () {
	const a = fn();
	const b = await fn();
	console.log(a);  // Promise {<fulfilled>: 100}
	console.log(b);  // 100
})()

考點(diǎn)4: await 代碼執(zhí)行順序

async function fn1() {
	console.log("fn1 start");
	await fn2();
	console.log("fn1 end");
}
async function fn2() {
	console.log("fn2 start");
}
console.log("start");
fn1();
console.log("end");
/**
 * 打印順序:
 * start
 * fn1 start
 * fn2 start
 * end
 * fn1 end
 */
async function fn1() {
	console.log("fn1 start");
	await fn2();
	console.log("fn1 end");
	await fn3();
	console.log("fn3 end");
}
async function fn2() {
	console.log("fn2");
}
async function fn3() {
	console.log("fn3");
}
console.log("start");
fn1();
console.log("end");
/**
 * 打印順序:
 * start
 * fn1 start
 * fn2
 * end
 * fn1 end
 * fn3
 * fn3 end
 */

考點(diǎn)5:Promise 與 setTimeout 執(zhí)行順序

console.log("start");
setTimeout(()=>{
	console.log("setTimeout")
});
Promise.resolve().then(()=>{
	console.log("Promise")
})
console.log("end")
/**
 * 打印順序:
 * start
 * end
 * Promise
 * setTimeout
 */
async function fn1() {
	console.log("fn1 start");
	await fn2();
	console.log("fn1 end");  // await后面的代碼為"微任務(wù)代碼"
}
async function fn2() {
	console.log("fn2");
}
console.log("start");
setTimeout(()=>{
	console.log("setTimeout");  // 宏任務(wù) 
});
fn1();
console.log("end");
/**
 * 打印順序:
 * start
 * fn1 start
 * fn2
 * end
 * fn1 end
 * setTimeout
 */

附:promise與async await結(jié)合使用

昨天看了一道字節(jié)外包的面試題

?const list = [1, 2, 3];
? ? const square = num => {
? ? ? ? return new Promise((resolve, reject) => {
? ? ? ? ? ? setTimeout(() => {
? ? ? ? ? ? ? ? resolve(num * num);
? ? ? ? ? ? }, 1000);
? ? ? ? });
? ? }
? ? function test() {
? ? ? ? // 修改這里的代碼
? ? ? ? list.forEach(async x => {
? ? ? ? ? ? const res = await square(x);
? ? ? ? ? ? console.log(res);
? ? ? ? });
? ? }
? ? test()

需要修改的是把同步執(zhí)行的數(shù)組替換成換成異步打印。

在測試以后我們可以-驗(yàn)證,forEach和for循環(huán)不同的是for循環(huán)可以修改數(shù)組的值,且forEach取不到具體某一項(xiàng)的值,這里的異步說的是每執(zhí)行一次數(shù)組循環(huán),就執(zhí)行一步test()方法,

const list = [1, 2, 3];
const square = num => {
?? ?return new Promise((resolve, reject) => {
?? ??? ?setTimeout(() => {
?? ??? ??? ?resolve(num * num);
?? ??? ?}, 1000);
?? ?});
}
?function test() {
? for(let x of list) {
? ? var res = await square(x)
? ? console.log(res)
? }
}
test()

總結(jié)

到此這篇關(guān)于ES6中Promise、async和await面試題整理的文章就介紹到這了,更多相關(guān)ES6 Promise、async、await面試題內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
最新中文字幕在线播放| 欧美亚洲网站| 日韩.com| 黄色aa久久| 一区二区三区四区日本视频| 日韩国产专区| 日本蜜桃在线观看视频| 欧美激情国产在线| 五月天激情综合网| 日韩电影免费网址| 麻豆精品国产91久久久久久| 欧美日韩黑人| 久久中文欧美| 亚洲丝袜美腿一区| 日韩精品永久网址| 亚洲三级av| www.九色在线| 日本91福利区| 日韩精品诱惑一区?区三区| 久久午夜影视| 久久一区精品| 99久久夜色精品国产亚洲狼 | 91精品国产乱码久久久久久久| 久久国产精品久久w女人spa| 日韩欧美视频专区| 中文字幕一区二区三区日韩精品| 精品美女久久| 日韩精品欧美成人高清一区二区| 国产精品免费99久久久| 九一成人免费视频| 风间由美中文字幕在线看视频国产欧美| 色88888久久久久久影院| 亚洲欧美日韩综合国产aⅴ| 国产成人精品亚洲线观看| 日韩一二三区在线观看| 1024精品一区二区三区| 国产精品日韩精品在线播放| 免费观看在线综合色| 美女网站视频一区| 欧洲av一区二区| 日韩一级网站| 日韩欧美中文字幕一区二区三区| 久久久久观看| 日韩精品一区二区三区免费视频| a天堂资源在线| 麻豆精品久久久| 亚洲九九精品| 国产国产精品| 亚洲精品国产嫩草在线观看| 国产成人1区| 黄色网一区二区| 国产模特精品视频久久久久| 欧美日韩国产高清电影| 亚洲韩日在线| 免费视频最近日韩| 日韩毛片一区| 久久亚洲国产精品尤物| 亚洲另类视频| 在线日韩一区| 国产精品一区二区三区av麻 | 欧美在线资源| 精品久久美女| 国产精品一区二区av日韩在线| 国产成人免费精品| 老牛国产精品一区的观看方式| 国产福利亚洲| 国产亚洲午夜| 99久久夜色精品国产亚洲1000部| 欧美日韩在线二区| 综合五月婷婷| 综合欧美亚洲| 亚洲综合五月| 老牛国内精品亚洲成av人片| 91精品一区国产高清在线gif| 欧美日韩国产综合网| 亚洲深夜福利| 国产欧美自拍| 日韩欧美精品| 亚洲精品国产精品粉嫩| 日韩精品免费视频一区二区三区| 国产精品v日韩精品v欧美精品网站 | 欧美日韩国产观看视频| 国产精品.xx视频.xxtv| 国产日韩亚洲| 成人国产精品一区二区免费麻豆| 色老板在线视频一区二区| 国模精品一区| 综合亚洲自拍| 久久精品亚洲欧美日韩精品中文字幕| 日韩精品一二区| 亚洲福利久久| 国产日韩欧美一区二区三区在线观看| 国产精品对白| 日本综合精品一区| 麻豆一区在线| 欧美日本二区| 快播电影网址老女人久久| 69堂免费精品视频在线播放| 精品免费在线| 天堂成人免费av电影一区| 最新中文字幕在线播放| 国产精品一区二区精品视频观看| 免费日韩av片| 欧美精选一区二区三区| 日本精品不卡| 中文字幕在线视频久| 激情久久99| 久久永久免费| 国产精品久av福利在线观看| 日本不卡视频在线观看| 亚洲欧美专区| 蜜桃av一区二区| 免费精品视频| 欧美91视频| 久久婷婷av| 国产欧美日韩一区二区三区四区| 免费av一区二区三区四区| 日韩视频不卡| 亚洲午夜91| а√天堂8资源在线| 精品国产亚洲一区二区三区| 亚洲精品护士| 久久av影院| 亚洲精品88| 日韩精品免费一区二区三区| 日韩精品三区四区| 美女视频网站久久| 国产探花一区| 日本三级亚洲精品| 青青国产91久久久久久| 欧美特黄一区| 日av在线不卡| 亚洲不卡视频| 久久只有精品| 视频在线不卡免费观看| 久久亚洲精品中文字幕蜜潮电影| 福利在线一区| 午夜久久tv| 日韩三级视频| 国产精品色在线网站| 亚洲精品在线影院| 日本国产欧美| 国产精品丝袜在线播放| 伊人久久亚洲热| 欧美激情麻豆| 久久亚洲国产| 欧美成人aaa| 福利一区在线| 久久av国产紧身裤| 1000部精品久久久久久久久| 免费在线观看日韩欧美| 亚洲精品在线国产| 日韩欧美四区| 国产精品中文| 电影91久久久| 日韩在线精品| av亚洲免费| 在线观看亚洲精品福利片| 五月亚洲婷婷 | 国产精品一级| 日韩电影二区| 精品三级久久| 欧美aa在线视频| 日韩欧美一区二区三区免费观看| 日韩欧美一区二区三区免费观看| 国产二区精品| 日韩中文字幕一区二区三区| 日韩avvvv在线播放| 狂野欧美性猛交xxxx| 丝袜美腿一区| 久久最新视频| 欧美黄色精品| 一区二区三区四区在线看| 亚洲欧洲日韩精品在线| 午夜精品影院| 免费成人在线观看| 亚洲最大av| 午夜久久久久| 久久亚洲精品中文字幕| 99成人在线| 久久精品不卡| 亚洲三级在线| 久久精品一区二区国产| 欧美日韩色图| 免费精品国产的网站免费观看| 久久精品国产99| 国产精品日韩精品在线播放| 国产欧美一区二区色老头| 日韩福利视频网| 欧美日韩在线精品一区二区三区激情综合| 国产精品天堂蜜av在线播放| 蜜桃成人精品| 亚洲91在线| 日韩精品欧美| 国产一区二区三区黄网站 | 亚洲一区中文| 精品中文字幕一区二区三区av| 性欧美xxxx免费岛国不卡电影| 欧美日一区二区| 美美哒免费高清在线观看视频一区二区|