微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想在 javascript 中的 async forEach 循环之后从 async 函数返回一些数据我怎样才能做到这一点?

如何解决我想在 javascript 中的 async forEach 循环之后从 async 函数返回一些数据我怎样才能做到这一点?

我想在 javascript 中的异步 forEach 循环之后从异步函数返回一些数据。我怎样才能做到这一点? 我试过了。

Method 1:
async function myFunc(myArray){
    sum = 0;
    myArray.forEach(async function (element,i){
       sum += element;
    });
    return sum;
}
it returns 0 always.

Method 2:
async function myFunc(myArray){
    sum = 0;
    myArray.forEach(async function (element,i){
       sum += element;

       if(i == myArray.length-1) return sum;
    });
}
it returns 0 too.

有人可以帮我吗?

解决方法

我不知道你为什么在这里使用异步函数,但异步函数返回一个承诺(承诺数据将在未来的某个时间返回),所以你需要使用 promise API 等待数据返回。在您的示例中,您的 forEach 回调没有理由异步。

const myArray = [0,1,2,3];

async function myFunc(myArray) {
  let sum = 0;
  myArray.forEach(element => sum += element);
  return sum;
}

myFunc(myArray).then(console.log);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。