Web前端最全ES6学习笔记之Promise对象_对象的值是promise函数,2024前端春招面试真题详解

前端框架

前端框架太多了,真的学不动了,别慌,其实对于前端的三大马车,Angular、React、Vue 只要把其中一种框架学明白,底层原理实现,其他两个学起来不会很吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。

以 Vue 为例,我整理了如下的面试题。

Vue部分截图

如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

}else{
   reject(error);
}

});


Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject。它们是两个函数,由 JavaScript 引擎提供,不用自己部署。  
 resolve 表示成功执行的回调函数  
 reject 表示失败执行的回调函数


封装一个函数,叫读文件duwenjian(),这个函数接收url作为路径参数:



var fs = require(“fs”);
function duwenjian(url){
return new Promise(function(resolve,reject){
fs.readFile(url, (err,data)=>{
if(err){
reject(); //失败执行
return;
}
resolve(data.toString()); //成功执行
})
})
}
duwenjian(“./data/1.txt”).then((data)=>{
console.log(data);
return duwenjian(“./data/2.txt”);
}).then((data)=>{
console.log(data);
return duwenjian(“./data/3.txt”);
}).then((data)=>{
console.log(data);
})


回调黑洞问题解决了,将原来的“嵌套模式”变为“队列模式”  
 可以认为这是一根语法糖,因为没有改变原理,只改变了写法。


Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。then方法可以接受两个回调函数作为参数。第一个回调函数是Promise对象的状态变为resolved时调用,第二个回调函数是Promise对象的状态变为rejected时调用。其中,第二个函数是可选的,不一定要提供。这两个函数都接受Promise对象传出的值作为参数。



duwenjian(“./data/1.txt”).then((data)=>{
console.log(data);
},()=>{
console.log(“读取失败”)
})


1. l这个函数返回一个Promise对象,这个对象是构造函数,ES6新增的。
2. Promise一定是某个函数的唯一返回值,Promise自己调用没有任何意义,必须当做一个函数的返回值才有意义!本例中,Promise就是duwenjian函数的返回值!!
3. 这个函数中,一定是一个异步语句,我们的案例是fs.readFile()
4. 异步语句的成功,要将数据通过resolve(数据)传出去,这个数据将成为then里面的data。
5. 异步语句的失败,要将错误信息通过reject(err)传出去,这个数据将成then里面的第二个data。
6. Promise的实例拥有then()方法,也就是说,then方法是定义在原型对象。


**3.ES7的async和await**   
 ES6中的Promise对象,解决了回调黑洞,但实际上又产生了火车黑洞,then()过多不好看。  
 所以ES7中提出了async/await可以让我们用同步的方式写异步,不写then了。  
 async表示异步,await表示异步等待。


注意:  
 1)必须写那个return Promise对象的函数;  
 2)await不能裸用,必须写在async字样的函数里;  
 3)所有异步语句前都要加await,但是后面的函数必须return Promise实例的函数。


Nodejs读文件:



var fs = require(“fs”);
function duwenjian(url){
return new Promise(function(resolve,reject){
fs.readFile(url, (err,data)=>{
if(err){
reject(); //失败执行
return;
}
resolve(data.toString()); //成功执行
})
})
}

async function main(){
var data1 = await duwenjian(“data/1.txt”).then(data=>data);
var data2 = await duwenjian(“data/2.txt”).then(data=>data);
var data3 = await duwenjian(“data/3.txt”).then(data=>data);
console.log(data1)
console.log(data2)
console.log(data3)
};

文末

逆水行舟不进则退,所以大家要有危机意识。

同样是干到35岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。

这也是为什么大家都说35岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师核心知识笔记》电子稿文件。

内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。

269页《前端大厂面试宝典》

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值