异步操作
异步操作:同时进行多个操作,用户体验好,但是代码混乱
同步操作:一次只能执行一个操作
Promise
趋近于封装异步操作
let p = new Promise((reslove,reject)=>{
//异步
//reslove 成功回调,返回括号内的值
//reject 失败回调,返回括号内的值
})
p.then(()=>{},()=>{})
//成功执行前面,错误执行后面,也就是resolve和reject
Promise.all([
f1,f2,f3
//Promise对象
//全部执行完成返回各个函数执行完成的结果,结果合并为一个数组
]).then(arr=>{},res=>{})
Promise.race([
//全部一起读,哪个快用哪个,都出错了才调用res
]).then(arr=>{},res=>{})
async/awiat
之前使用generator/yield,但在async/await出现后就被废弃了
async function(){
let data = await $.ajax()
//表明此函数为异步操作
}
//声明函数中包含异步操作
这种语句用下列语句包裹可以在代码出错时明确出错的地方
try {
//await语句
}catch(e){
console.log('出错啦')
}