一、promise async await Promise.all 基本使用
function zhixing1(){
return new Promise((resolve,reject)=>{
setTimeout(() => {
if (true) {
resolve('第一个')
} else {
reject('请求错误')
}
}, 1000);
})
}
async function zhixing2(){
const msg3=await zhixing3()
return await zhixing4(msg3)
}
function zhixing3(){
return new Promise((resolve,reject)=>{
setTimeout(() => {
if (true) {
resolve('第三55个')
} else {
reject('请求错误')
}
}, 3000);
})
}
function zhixing4(msg){
return new Promise((resolve,reject)=>{
setTimeout(() => {
if (true) {
resolve(msg+'试试异步')
} else {
reject('请求错误')
}
}, 1000);
})
}
async function getPageData() {
const [msg1, msg2] = await Promise.all([
zhixing1(), zhixing2()
])
console.log(msg1,msg2)
}
getPageData()
二、小驼峰和下划线互转
function camelToUnderline(str){
return str.replace(/([A-Z])/g,'_$1').toLowerCase()
}
function camelToUnderline(str){
return str.replace(/_[a-z]/g,e=>e.toUpperCase().replace('_',''))
}
三、数组扁平化 flat
function flat(arr,initVal){
const strVal=initVal||[]
return arr.reduce((prevRes, item)=>{
if(Array.isArray(item)){
return flat(item,prevRes)
}else{
return prevRes.concat(item)
}
},strVal)
}
一句代码判断数据类型,支持所有
Object.prototype.toString.call(someType).slice(8, -1).toLocaleLowerCase();