黑白匿名异步函数使用和异步函数使用有什么区别

时间:2019-05-02 20:36:32

标签: javascript async-await

我想创建一个函数“ processArray(array)”,当调用该函数时,它将在数组中的项目之后逐个console.log,每个日志之间的延迟为1秒。
因此,我已经使用以下代码(A)做到了这一点:

function delay() {
      return new Promise(resolve => setTimeout(resolve, 1000));
    }
    
    async function delayedLog(item) {
      await delay();
      console.log(item);
    }
    
    async function processArray(array) {
      for (let i = 0; i < array.length ; i++){ 
      		await delayedLog(array[i]);
      }
    }
    
    processArray([1, 2, 3]);

但是此代码(B)不起作用:

function delay() {
      return new Promise(resolve => setTimeout(resolve, 1000));
    }
    
    async function delayedLog(item) {
      await delay();
      console.log(item);
    }
    
    function processArray(array) {
      for (let i = 0; i < array.length ; i++){ 
        (async () => {
      		await delayedLog(array[i]);
    	})();
      }
    }
    
    processArray([1, 2, 3]);

为什么B代码不起作用?唯一的不同是,我在for循环内使用了匿名异步函数,而不是声明processArray函数异步。

0 个答案:

没有答案