es6中 async await 底层实现原理

ぃ、小莉子 提交于 2019-12-01 16:49:07
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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!