{
// es5
let ajax=function (cb) {
console.log('执行')
setTimeout(function(){
cb&&cb.call()
},1000)
}
ajax(function(){
console.log('timeout1')
})
}
{
let ajax=function(){
console.log('执行2')
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve()
},1000)
})
}
ajax().then(function(){
console.log('promise','timeout2')
})
}
{
let ajax=function(){
console.log('执行3')
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve()
},1000)
})
}
ajax()
.then(function(){
console.log('执行4')
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve()
},2000)
})
})
.then(function(){
console.log('timeout3')
})
}
{
let ajax=function(num){
console.log('执行5')
return new Promise(function(resolve,reject){
if(num>5){
resolve()
}else{
throw new Error('出错了')
}
})
}
ajax(6).then(function(){
console.log('log',6)
}).catch(function(err){
console.log('catch',err)
})
ajax(2).then(function(){
console.log('log',2)
}).catch(function(err){
console.log('catch',err)
})
}
{
// 所有图片加载完再添加到页面
function loadImg(src){
return new Promise((resolve,reject)=>{
let img =document.createElement('img')
img.src=src
img.onload=function(){
resolve(img)
}
img.onerror=function(err){
reject(err)
}
})
}
function showImg(imgs){
imgs.forEach(function(img){
document.body.appendChild(img)
})
}
Promise.all([
loadImg('http://cms-bucket.ws.126.net/2020/0115/34f68b99j00q45b12000xc000fa00bhc.jpg'),
loadImg('http://cms-bucket.ws.126.net/2020/0321/8afc9c4fg00q7ivk906xhc000cw0061c.gif'),
loadImg('http://cms-bucket.ws.126.net/2020/0501/e511d1c2j00q9mt54008hc000mp00gwc.jpg'),
]).then(showImg)
}
{
// 有一张图片加载完再添加到页面
function loadImg(src){
return new Promise((resolve,reject)=>{
let img =document.createElement('img')
img.src=src
img.onload=function(){
resolve(img)
}
img.onerror=function(err){
reject(err)
}
})
}
function showImg(img){
let p=document.createElement('p')
p.appendChild(img)
document.body.appendChild(p)
}
Promise.race([
loadImg('http://cms-bucket.ws.126.net/2020/0115/34f68b99j00q45b12000xc000fa00bhc.jpg'),
loadImg('http://cms-bucket.ws.126.net/2020/0321/8afc9c4fg00q7ivk906xhc000cw0061c.gif'),
loadImg('http://cms-bucket.ws.126.net/2020/0501/e511d1c2j00q9mt54008hc000mp00gwc.jpg'),
]).then(showImg)
}
浙公网安备 33010602011771号