成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

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

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

出題目的:

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

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

  • JS 執(zhí)行順序:?jiǎn)尉€程,自上而下、先同步后異步、先微任務(wù)后宏任務(wù)
  • new promise() -> Promise.resolve(),觸發(fā)then
  • new promise((reject)=>{reject()}) -> promise.reject(),觸發(fā)catch
  • then 和 catch 內(nèi)部沒(mé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)部沒(mé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對(duì)象 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ù)組替換成換成異步打印。

在測(cè)試以后我們可以-驗(yàn)證,forEach和for循環(huán)不同的是for循環(huán)可以修改數(shù)組的值,且forEach取不到具體某一項(xiàng)的值,這里的異步說(shuō)的是每執(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)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: JavaScript
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产亚洲欧洲一区高清在线观看| 国产区二精品视| 91色|porny| 欧美精品丝袜中出| 亚洲高清一区二区三区| 欧美午夜不卡| 久久久亚洲精华液精华液精华液 | 国产伦精一区二区三区| 免费久久99精品国产自| 一区二区三区加勒比av| 在线播放日韩| 国产精品丝袜一区| 欧美fxxxxxx另类| 国产亚洲成年网址在线观看| 成人三级在线视频| 日韩午夜电影av| 国产 日韩 欧美大片| 欧美一区二区三区男人的天堂| 久久国产精品免费| 在线观看亚洲专区| 麻豆成人在线观看| 欧美性高清videossexo| 美日韩一区二区| 在线国产电影不卡| 美女精品自拍一二三四| 欧美亚洲一区三区| 久久99久久99精品免视看婷婷| 色悠悠久久综合| 蜜臀av性久久久久蜜臀aⅴ| 色av成人天堂桃色av| 天堂在线一区二区| 亚洲男人影院| 视频一区二区三区入口| 国产午夜精品在线| 午夜在线成人av| 色国产综合视频| 久久电影网电视剧免费观看| 欧美日韩美少妇| 国产原创一区二区| 日韩欧美中文字幕精品| www.日韩在线| 欧美经典三级视频一区二区三区| 欧美亚洲不卡| 亚洲女子a中天字幕| 国产精品乱码一区二区三区| 香蕉乱码成人久久天堂爱免费| 91福利视频网站| 国产真实乱子伦精品视频| 777久久久精品| 成人的网站免费观看| 国产日韩成人精品| 中文精品视频| 美女久久久精品| 日韩欧美成人一区| 欧美不卡福利| 一区二区高清在线| 色吊一区二区三区| 成人免费看片app下载| 久久久国际精品| 亚洲第一在线| 午夜欧美2019年伦理| 欧美日韩视频在线第一区| 成人一级视频在线观看| 久久久亚洲高清| 精品二区久久| 日韩不卡一二三区| 91精品国产综合久久精品app| 菠萝蜜视频在线观看一区| 中文字幕乱码亚洲精品一区| 激情综合自拍| 日韩国产在线观看一区| 91麻豆精品国产91久久久资源速度 | 国产欧美一区二区三区在线老狼| 99re国产精品| 国产伦理精品不卡| 国产精品久久久久影院| 久久本道综合色狠狠五月| 国产一区二区剧情av在线| 久久网站热最新地址| 亚洲精品影院| 免费久久精品视频| 久久日韩精品一区二区五区| 亚洲欧洲另类| 卡一卡二国产精品| 久久夜色精品一区| 国产精品入口| 国产精品自拍网站| 亚洲色图20p| 欧美男生操女生| 欧美日韩国产探花| 日本中文在线一区| 精品嫩草影院久久| 日韩视频在线观看国产| 乱中年女人伦av一区二区| ww久久中文字幕| 日韩一级在线| 国产不卡高清在线观看视频| 亚洲三级电影全部在线观看高清| 在线看国产一区二区| 99精品黄色片免费大全| 亚洲国产一区在线观看| 日韩精品一区二区三区四区 | 欧美色爱综合网| 午夜国产精品视频免费体验区| 亚洲成人av免费| 精品国产91久久久久久久妲己 | 同产精品九九九| www久久久久| 欧美中文字幕| 欧美国产高清| 国模娜娜一区二区三区| 国产精品视频在线看| 欧美色男人天堂| 黄色一区三区| 国产在线不卡视频| 亚洲一区二区三区四区在线免费观看 | 亚洲国产精品99久久久久久久久| 一本色道久久加勒比精品| jlzzjlzz欧美大全| 天堂av在线一区| 国产精品污www在线观看| 在线免费不卡视频| 激情综合自拍| 成人激情小说网站| 日本vs亚洲vs韩国一区三区| 国产精品激情偷乱一区二区∴| 7777女厕盗摄久久久| 亚洲深爱激情| 91网站视频在线观看| 奇米影视7777精品一区二区| 欧美激情综合五月色丁香小说| 欧美精品久久99久久在免费线| 国产日韩欧美一区在线| 色综合中文综合网| 欧美高清一级片在线| 国产精品最新自拍| 91蜜桃网址入口| 国产一区二区免费在线| 日本不卡一区二区| 亚洲乱码国产乱码精品精小说 | 亚洲国产精品毛片| 成人av在线资源网站| 免费成人结看片| 亚洲品质自拍视频| 国产午夜精品在线观看| 9191久久久久久久久久久| 亚洲综合丁香| 国产自产在线视频一区| 成人午夜在线视频| 人人精品人人爱| 亚洲精选一二三| 国产欧美日韩另类一区| 欧美一激情一区二区三区| 在线欧美日韩精品| 国产精品亚洲综合| 在线播放豆国产99亚洲| 欧美在线网址| 成人网在线播放| 国产乱码精品一区二区三区忘忧草| 日韩国产高清影视| 一区二区三区中文在线| 国产日韩欧美综合一区| 日韩你懂的电影在线观看| 欧美午夜免费电影| 久久久7777| 亚洲一区3d动漫同人无遮挡| 激情视频一区| 欧美日韩综合另类| 欧美久久一区| 暴力调教一区二区三区| 丁香婷婷深情五月亚洲| 国产一区二区三区四区五区入口 | 国产精品美女视频| 亚洲国产精品成人综合色在线婷婷| 久久色中文字幕| 日韩精品中文字幕一区| 日韩免费电影一区| 欧美一级黄色片| 日韩欧美一二三区| 日韩视频免费直播| 欧美一区二区三区在线观看| 欧美喷水一区二区| 欧美一区二区福利在线| 日韩欧美一区电影| 久久伊99综合婷婷久久伊| 2023国产一二三区日本精品2022| 欧美成人官网二区| 久久综合九色综合97婷婷女人| 2023国产精品自拍| 亚洲国产精品精华液2区45| 中文字幕日韩一区| 亚洲精品亚洲人成人网在线播放| 亚洲欧美国产毛片在线| 亚洲成在人线免费| 青娱乐精品视频| 韩国v欧美v亚洲v日本v| 国产精品自产自拍| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 91亚洲精品久久久蜜桃网站| 色综合欧美在线|