es12
1. Promise.any
E12 新增的 Promise 的方法
接收一个 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);
}
);
// 当全都失败时
function fn(time, isResolve) {
return new Promise((resolve, reject) => {
setTimeout(() => {
isResolve
? resolve(`${time}毫秒后成功!!!`)
: reject(`${time}毫秒后失败!!!`);
}, time);
});
}
Promise.any([fn(2000), fn(3000), fn(1000)]).then(
(res) => {
console.log(res);
},
(err) => {
console.log(err); // 3秒后 报错 all Error
}
);
2. 数字分隔符
数字分隔符可以让在定义长数字时,更加地一目了然
const num = 1000000000;
// 使用数字分隔符
const num = 1_000_000_000;
3. ||= 和 &&=
或等于(||=) a ||= b 等同于 a || (a = b);
且等于(&&=) a &&= b 等同于 a && (a = b);
4. 对象动态属性
经常碰到这样的问题,无论是在微信小程序还是 React 中,需要根据某个条件去修改某个数据
if (type === "boy") {
this.setData({
boyName: name,
});
} else if (type === "girl") {
this.setData({
girlName: name,
});
}
也不知道这个新特性叫啥,就取名叫属性动态属性
this.setData({
[`${type}Name`]: name,
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南