汇总
1. Promise combinators
1.1 Promise.any()
Promise.any 接收一个 promise 可迭代对象
- 只要其中的一个
promise 成功,就返回那个已经成功的 promise
- 如果可迭代对象中没有一个
promise 成功(即所有的 promises 都失败/拒绝),Promise.any 将返回异步失败,和一个 AggregateError 对象,它继承自 Error,有一个 error 属性,属性值是由所有失败值填充的数组。
// 至少有一个成功
const pErr = new Promise((resolve, reject) => {
reject("总是失败")
})
const pSlow = new Promise((resolve, reject) => {
setTimeout(resolve, 500, "最终完成")
})
const pFast = new Promise((resolve, reject) => {
setTimeout(resolve, 100, "很快完成")
})
Promise.any([pErr, pSlow, pFast]).then((value) => {
console.log(value)
})
// 期望输出: "很快完成"
// 全部(失败 or 拒绝)
const pImmediatelyErr = new Promise((resolve, reject) => {
reject("总是失败")
})
const pSlowErr = new Promise((resolve, reject) => {
setTimeout(reject, 500, "最终失败")
})
const pFastErr = new Promise((resolve, reject) => {
setTimeout(reject, 100, "很快失败")
})
Promise.any([pImmediatelyErr, pSlowErr, pFastErr]).catch((err) => {
console.log(err)
})
// 期望输出: "AggregateError: All promises were rejected"
1.2 combinators 汇总
推荐阅读
2. replaceAll()
es2021之前提供的字符串替换方法 replace方法 ,当一个参数是字符串时,只替换第一个匹配的字符串
'ASDFA'.replace('A', 'M')
// "MSDFA"
如果需要替换所有匹配的字符串,第一个参数需要使用正则
'ASDFA'.replace(/A/g, 'M')
// "MSDFM"
有了 replaceAll 方法,可直接替换全部匹配的字符,不再需要使用正则
'ASDFA'.replaceAll('A', 'M')
"MSDFM"
推荐阅读
3. 数字分隔符
以前写大数时,过长的话不同容易读取
现在为了提高可读性,使用下划线作为数字的分隔符
100_000_000
// 1e
1_0000_0000
// 1e
推荐阅读
4. 弱引用
待写
5. 逻辑赋值
待写
汇总
1. Promise combinators
1.1 Promise.any()
Promise.any接收一个promise可迭代对象promise成功,就返回那个已经成功的promisepromise成功(即所有的promises都失败/拒绝),Promise.any 将返回异步失败,和一个 AggregateError 对象,它继承自 Error,有一个 error 属性,属性值是由所有失败值填充的数组。1.2 combinators 汇总
推荐阅读
2. replaceAll()
es2021之前提供的字符串替换方法 replace方法 ,当一个参数是字符串时,只替换第一个匹配的字符串
如果需要替换所有匹配的字符串,第一个参数需要使用正则
有了 replaceAll 方法,可直接替换全部匹配的字符,不再需要使用正则
推荐阅读
3. 数字分隔符
以前写大数时,过长的话不同容易读取
现在为了提高可读性,使用下划线作为数字的分隔符
推荐阅读
4. 弱引用
5. 逻辑赋值