异步箭头功能和异步IIFE有什么区别?

时间:2018-03-13 20:38:42

标签: javascript asynchronous async-await arrow-functions iife

有人可以帮助我理解这些块的执行方式(如果存在差异):

;(async function(){
  await alert('Hello world!');
})();

let myFunction = async () => {
  await alert('Hello world!');
};

除了IIFE立即被自我调用之外,这些块的执行方式是否存在差异?

1 个答案:

答案 0 :(得分:1)

您的示例不是一个很好的示例,因为您没有在异步函数中执行异步操作。警报是同步的,因为在javascript执行将停止,直到它返回。这使得await关键字的使用毫无意义。

我看到的唯一区别是你没有将生成的承诺分配给iife中的变量,这意味着如果你正在执行异步操作,那么在完成代码时就无法执行代码。