2021/12/14

在require之后就会被执行。

我觉得想要了解vue的话一定要把这些面试题掌握明白:
https://cloud.tencent.com/developer/article/1675622

关于vue中data的值为什么是函数:https://zhuanlan.zhihu.com/p/259204617

keep-alive 的三种用法:
https://blog.csdn.net/qq_42357338/article/details/108031887?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.highlightwordscore&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.highlightwordscore

this.$refs的使用:https://blog.csdn.net/qq_37767455/article/details/102485242

关于slot插槽的用法:https://zhuanlan.zhihu.com/p/114502325?from_voters_page=true

今天上午开会了,下午做了一会儿原型设计。

导航钩子:https://www.cnblogs.com/avon/p/6178141.html

下午又在看async,await啦,然后要了解这两个首先要了解什么是promise,要了解promise就需要了解
回调函数。

之前不是在await promise嘛。然后知道了等待的参数是谁。
今天回去回顾知识,才发现一切都是有迹可循的。作为回调函数,它们之间不断地通过cb(res)传递数值,
也就是说,cb(res)中的res就是回调函数在传的参数。进行回调函数的目的也在于它。因为回调函数就是
通过cb一层层传递的,数值就是回调函数的参数。
知道回调函数原先的作用就是传递参数res后,其它就不难理解了。
(当然,我知道回调函数就是为了接收包裹它的函数的参数经处理后的参数。
例子就是:要调用1个接口,需要调用5个前置接口。
回调套回调,也叫回调地狱,promise一定程度上解决了一层套一层的问题。
回调变promise,也就是从cb(res)变成了resolve(res) or reject(res)
promise是这样写的:
const request = (arg)=>{
return new Promise((resolve,reject)=>{
setTimeOut(()=>{
console.log(arg);
resolve(arg+1);
},300);

request(1)
.then((res1)=>{
return request(res1)})
.then((res2)=>{
return request(res2)})
.then…
原先的回调函数又是这样写的:
const request = (arg,cb)=>{
setTimeOut(()=>{
cb(arg+1);
},1000);
};
request(1,function(res){
request(2,function(res2){

其实就是,promise把回调函数cb(x)封装给了resolve(x),然后原者通过嵌套,
现在的用户就通过.then。
之所以return promise 而不是纯 promise无 return,本质上就是为了让resolve(也就是.then(res)
一代代传下去)
所以以后看到return new Promise 就知道是为了嵌套。
如果对象a是promise,那么就可以 a.then。

async函数,返回的值一定是个promise。
const fn = async()=>{return 1};
这个语句跟:
const fn = () =>{
return new Promise((resolve,reject)=>{
resolve(1);});};是等价的。
所以async的return 1 就等于 return newPromise((resolve,reject)=>{ resolve(1)}了。
当然,你也可以这样想 ,async可以把return 1 封装成 newPromise((resolve,reject)=>{ resolve(1)}。
(也就是把返回值封装成一个promise对象)
await 等待的就是这个resolve,也就是1。(所以await才等执行完,因为它要等到res)
都是fn().then((res)=>{}).
!!!突然就发现了async函数的优点了有没有!!!同时也发现跟用promise进行回调有关系捏。
所以根据.then,就可以得出,fn().then((res)=>{ console.log(res)});。

了解了async,就可以了解await了。
其实之前就知道await promise返回的是res了。(resolve(res)的res,同时也是.then(res)里的res
,准备来说是.then(res)里的res)。
也就是说 await promise == .then(res)取出res。
那么这样就是await进一步优化promise步骤的原因。
await是写在async里的。
例子:
const fn = async ()={

const res1 = await request(1);
const res2= await request (res1);
const res3= await request(res2);
}
这个叫以同步思维实现异步。(这句话很重要)
记住这个例子有利于明白await next();

用回调,用promise,依旧有嵌套,所以这个时候就要借助async和await,依靠这个实现无嵌套。

当函数返回的是一个promise对象,则可以await 函数。

实际应用:koa中间件用了async函数,通过await next()就可以达成执行下一步中间件的注册。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值