实现async/await

2019-04-18  本文已影响0人  织雪纱奈
function yieldPromise(generator){
    var iterator=generator();
    recursiveCore.call(iterator);
}

function recursiveCore(feedback){
    var iterator=this,
        result=iterator.next(feedback);

    if(result.done){
        return;
    }

    var promise=result.value;
    Promise.resolve(promise).then(function(v){
        recursiveCore.call(iterator,v);
    });
}


yieldPromise(function*(){
    var v1=yield new Promise(function(resolve,reject){
        setTimeout(function(){
            resolve('Hello');
        },1500);
    });

    console.warn(v1);

    var v2=yield new Promise(function(resolve,reject){
        setTimeout(function(){
            resolve('World');
        },1500);
    });

    console.warn(v2);
});


上一篇下一篇

猜你喜欢

热点阅读