写法不同
1. **ES5正常写法**
getAjax(url,(res)=>{
})
2. **Promise**
get(url).then((res)=>{
})
3. **async_await**
(async ()=>{
let res = await get(url)
})()
**总结:
ES5写法和promise写法,主要区别在写法的不同,可以让回调函数,划分出去在.then的函数里去执行,使得代码更加的另外,也可以将两个不同的参数,可以划分开来写。
async和promise的区别,不要在于async时promise的语法糖,这种形式的写法在底层编译之后会自动转化成promise的写法**
**
Promise实现原理
**
**promise需要实现的功能**
function fn(resolve,reject){
setTimeout(()=>{
if(true){
resolve()
}else{
reject()
}
})
}
var p1 = new LcPromise(fn)
p1.then(function(res){
document.body.style.background = "greenyellow"
console.log("这是成功做的事情")
console.log(res)
})
p1.catch(function(res){
document.body.style.background = "pink"
console.log("这是失败做的事情")
console.log(res)
}