//函数直接调用,在.then中进行成功的操作,在.catch中进行失败的各种操作.
es6中:
let imageAsync=(url)=>{ return new Promise((resolve,reject)=>{ let img = new Image(); img.src=url; img.οnlοad=()=>{ console.log(`图片请求成功,此处进行通用操作`); resolve(image); } img.οnerrοr=(err)=>{ console.log(`失败,此处进行失败的通用操作`); reject(err); } }) } imageAsync("url").then(()=>{ console.log(`${image},此处进行图片成功的个性化操作`); }).catch((error)=>{ console.log(`${error},此处进行图片请求失败的个性化操作`); })
es5:
function loadImageAsync(url){ return new Promise((resolve,reject)=>{ let image=new Image(); image.onload=function(){ resolve(image); }; image.onerror=function(){ reject(new Error('Could not image at'+url)); } image.src=url; }) }