掘友等级
欢迎找我内推,邮箱 lijie.muzi@bytedance.com
获得徽章 0
请记住,为了做到完美,你迟早要放开当下的执念,然后继续写下一篇
请教下大家,你们觉得vue和react最本质的区别是什么?
有个大佬说,他们最本质的区别是vue是一个framework,而react是一个渲染库.你们怎么看?
聊聊Promise.all()接收的Promise对象数组当有Promise对象 rejected:
(function() {
let p1 = new Promise((resolve, reject) => {
setTimeout(() => {
reject("111")
}, 200)
})
let p2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("222")
}, 400)
})
let p3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("333")
}, 600)
})
Promise.all([p1, p2, p3]).then((value) => {
console.log('all', value)
}, (err) => {
console.log('allErr', err)
})
Promise.race([p1, p2, p3]).then((value) => {
console.log('race', value)
}, (err) => {
console.log('raceErr', err)
})
Promise.all([p1,p2,p3]) --> p1 rejected --> rejected的Promise
Promise.all([p1,p2,p3]) --> p1 rejected --> rejected的Promise
then函数的rejected的回调不定义则抛出错误,定义则rejected的Promise 被正确捕获. 聊聊Promise.all()接收的Promise对象数组当有Promise对象 rejected的时候的表现:
(function() {
let p1 = new Promise((resolve, reject) => {
setTimeout(() => {
reject("111")
}, 200)
})
let p2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("222")
}, 400)
})
let p3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("333")
}, 600)
})
Promise.all([p1, p2, p3]).then((value) => {
console.log('all', value)
}, (err) => {
console.log('allErr', err)
})
Promise.race([p1, p2, p3]).then((value) => {
console.log('race', value)
}, (err) => {
console.log('raceErr', err)
})
Promise.all([p1,p2,p3]) --> p1 rejected --> 结果rejected的promise
Promise.all([p1,p2,p3]) --> p1 rejected --> 结果rejected的promise
then函数的rejected的回调不定义则抛出错误,定义则rejected的promise被正确捕获. 聊聊Promise.all()接收的Promise对象数组当有Promise对象 rejected的时候的表现:
(function() {
let p1 = new Promise((resolve, reject) => {
setTimeout(() => {
reject("111")
}, 200)
})
let p2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("222")
}, 400)
})
let p3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("333")
}, 600)
})
Promise.all([p1, p2, p3]).then((value) => {
console.log('all', value)
}, (err) => {
console.log('allErr', err)
})
Promise.race([p1, p2, p3]).then((value) => {
console.log('race', value)
}, (err) => {
console.log('raceErr', err)
})
执行结果,未捕获的Promise,
下面来看看当我们在then函数定义拒绝的回调时的表现:
然后来看看Promise.race的表现(分别是then函数里不定义和定义reject时候的回调): 和大家讨论一个问题:
{} + [] // 0
[] + {} // "[object Object]"
分享下你们的理解?
深深地意识到,学习一个技术的第一步不是去看一些实战案例,而是把官方文档彻彻底底读明白,搞清楚.之前被问到为什么要推出hooks,我也只能模糊的答出来是为了更好的复用状态处理逻辑,但其实我是没有真正明白为什么要推出hooks的,今天又把官网文档hooks这部分的介绍仔仔细细读了一遍,才真的明白,做技术,不应该只顾实战,要多问问为什么?先去把官方文档理解透,会用不代表懂了,对技术的理解应该上升到可以拿出具体的案例和使用场景来比较分析讲清楚,那才是真的懂了~
下一页