
获得徽章 0
- 聊聊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 被正确捕获.展开95 - 分享一道面试题:
编写一个balance函数,判断传入的字符串参数是不是一个平衡的字符串,所谓平衡的字符串就是: 'abc(hh)hh', 'abc{hh}hh', ''abc[hh]hh',字符串里的'(', '[', '{'都是成对出现的.下面是我的实现,欢迎大家分享你们的实现,期待看到编程思想的碰撞.
function balance(str) {
let tempArr = []
let obj = {
'{': '}',
'(': ')',
'[': ']'
}
for(let i of str) {
if(/\(|\[|\{/.test(i)) {
tempArr.push(i);
} else if(/\)|\]|\}/.test(i)) {
if(obj[tempArr[tempArr.length - 1]] === i) {
tempArr.pop()
} else {
return false
}
}
}
return !tempArr.length
}展开125 - 分享一道面试题:
编写一个balance函数,判断传入的字符串参数是不是一个平衡的字符串,所谓平衡的字符串就是: 'abc(hh)hh', 'abc{hh}hh', ''abc[hh]hh',字符串里的'(', '[', '{'都是成对出现的.下面是我的实现,欢迎大家分享你们的实现,期待看到编程思想的碰撞.
function balance(str) {
let tempArr = []
let obj = {
'{': '}',
'(': ')',
'[': ']'
}
for(let i of str) {
if(/\(|\[|\{/.test(i)) {
tempArr.push(i);
} else if(/\)|\]|\}/.test(i)) {
if(obj[tempArr[tempArr.length - 1]] === i) {
tempArr.pop()
} else {
return false
}
}
}
return !tempArr.length
}展开11