function sleep(second) {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(‘want to sleep~’);
}, second);
})
}
async function errorDemo() {
let result = await sleep(1000);
console.log(result);
}
errorDemo();// VM706:11 Uncaught (in promise) want to sleep~
// 为了处理Promise.reject 的情况我们应该将代码块用 try catch 包裹一下
async function errorDemoSuper() {
try {
let result = await sleep(1000);
console.log(result);
} catch (err) {
console.log(err);
}
}
errorDemoSuper();// want to sleep~
// 有了 try catch 之后我们就能够拿到 Promise.reject 回来的数据了。
还有个例子:
a()
async function a(){
console.log(1)
await new Promise(function(resolve, reject) {
setTimeout(()=>{
resolve(3)
},500)
}).then((e)=>{
console.log(e)
})
console.log(2)
}
上述代码返回如下:
通俗一点:个人理解就是在async函数中使用await的时候,同时await后面是跟着promise时,会把await的结果作为同步去执行(也就是阻塞了await下面的代码,如上文提到的 “ 如果await的是 promise对象会造成异步函数停止执行并且等待 promise 的解决 ”),所以不管await后面的promise中,里面是同步代码还是settimeout或者ajax,都会先把它执行完毕,然后在去执行await后面的代码(也就是下一部分代码 )
面试题
async function demo01() {
console.log(1)
return ‘demo1’;
}
console.log(‘0’)
demo01().then(function(a){
console.log(a)
});
console.log(‘8’)
async function demo2(){
console.log(7)
await a()
console.log(6)
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
最后
其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)
《前端开发四大模块核心知识笔记》
最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
421efff2a0cd1db5a9d4251.png)
最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。