工作生活

ES6 Promise对象应用

2019-07-08  本文已影响0人  萘小蒽
1. 加载图片

我们可以将加载图片写成一个Promise,一旦加载完成,Promise的状态就发生变化。

const perloadImage = function(path){
  return new Promise((resolve,reject)=>{
       var img = new Image();
       img.onload = resolve;
       img.onerror = reject;
       img.src = path;
   });
};

上面perloadImage返回的将是event对象。

2. Promise与Generator函数结合
function getFoo(){
   return new Promise((resolve,reject) => {resolve('foo')})
}
var g = function*(){
  try{
      var foo = yield getFoo();
       console.log(foo);
     }catch(e){
       console.log(e)
     }
};
function run(generator){
   var it = generator();
  function go(result){
   if(result.done) return result.value;
     return result.value.then(function(value){
         return go(it.next(value));
     },function(error){
         return go(it.throw(error));
     })
   }
 go(it.next());
}
run(g);
上一篇下一篇

猜你喜欢

热点阅读