ES12
# ES12
# Promise.any
- 接收一个Promise数组,数组中如有非Promise项,则此项当做成功
- 如果有一个Promise成功,则返回这个成功结果
- 如果所有Promise都失败,则报错
// 当有成功的时候,返回最快那个成功
function fn(time, isResolve) {
return new Promise((resolve, reject) => {
setTimeout(() => {
isResolve ? resolve(`${time}毫秒后我成功啦!!!`) : reject(`${time}毫秒后我失败啦!!!`)
}, time)
})
}
Promise.any([fn(2000, true), fn(3000), fn(1000, true)]).then(res => {
console.log(res) // 1秒后 输出 1000毫秒后我成功啦
}, err => {
console.log(err)
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 数字分隔符
数字分隔符可以让你在定义长数字时,更加地一目了然
const num = 1000000000
// 使用数字分隔符
const num = 1_000_000_000
1
2
3
4
2
3
4
# ||=和&&=
或等于(||=) a ||= b 等同于 a || (a = b);
且等于(&&=) a &&= b 等同于 a && (a = b);
1
2
3
2
3
# 对象动态属性
我们经常碰到这样的问题,无论是在微信小程序还是React中,我们需要根据某个条件去修改某个数据
if (type === 'boy') {
this.setData({
boyName: name
})
} else if (type === 'girl') {
this.setData({
girlName: name
})
}
复制代码
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
我也不知道这个新特性叫啥,我就自己取名叫属性动态属性
哈哈哈
this.setData({
[`${type}Name`]: name
})
1
2
3
2
3
编辑 (opens new window)
上次更新: 2021/12/06, 21:28:32