Skip to content

async最新的v8处理 #11

@liang520

Description

@liang520

如下代码:

var p = Promise.resolve();
(async () => {
  await 1; 
  console.log('after:await');
})();
p.then(() => console.log('tick:a'))
 .then(() => console.log('tick:b'));

awiat后面如果是一个基础类型值,会通过Promise.resovle包装,awiat后面的值,会被包装到then里面。这个时候,then后面的函数就会直接放到微任务中。
如果后面是Promise,就不再包装,只是把await后面的值,放到then后面,then后面的任务什么时候放入到微任务中,需要根据await后面的promise的状态改变。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions