es6中 async await 底层实现原理


Input
async function findPosts() {
  var response = await $.get('/posts');
  return JSON.parse(response.posts);
}

async function main() {
  console.log('starting...');
  
  var posts = await findPosts();

  posts.forEach(function (post) {
    console.log(post);
  });
  
  console.log('ending...');
}

main();

 

Output
function findPosts() {
    var ctx = this, args = arguments;
    return Promise.resolve().then(function () {
        var response;
        return $.get('/posts').then(function (value) {
            response = value;
            return JSON.parse(response.posts);
        });
    });
}

function main() {
  var ctx = this, args = arguments;
  return Promise.resolve().then(function () {
    console.log('starting...');
    
    var posts;
    return findPosts().then(function (value) {
      posts = value;
      
      posts.forEach(function (post) {
        console.log(post);
      });
      
      console.log('ending...');
    });
  });
}

main();

  

 

我很想 知道他是如何  

var posts = await findPosts(); 
后面的代码  也添加到 同一个
 return findPosts().then(  方法中的


参考  https://github.com/jayphelps/sweet-async-await


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM