在node.js中完成异步函数后如何运行函数?

新来的学生

我想在forEach循环后运行代码

myPosts.forEach(function(post) {
    getPostAuthor(post.authorID, function(postAuthor) {
        post.author = postAuthor;
    }
});

res.render('index', {
    posts: myPosts
});
res.end();

在上面的代码中第一个res.render运行,然后forEach填充了post.author

乔纳斯·威尔姆斯

宁可映射到Promises而不是使用forEach进行迭代,然后使用Promise.all:

Promise.all(
 myPosts.map(function(post) {
  return new Promise(function(res){
   getPostAuthor(post.authorID, function(postAuthor) {
      post.author = postAuthor;
      res(postAuthor);
   });
  });
})
).then(function(authors){

  res.render('index', {
     posts: myPosts
   });
  res.end();

});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Node.js中完成for循环后如何运行函数?

如何在node.js中的promise类型的函数中完成.map函数后返回对象

在异步函数Node.Js中调用的异步函数

如何从 node.js 中的异步函数返回值

如何在Node.js中显示异步函数的结果

如何在Node.js中处理异步函数

如何在Node.js中处理异步函数

在Node.js中循环异步函数

在给定的时间后,如何在node.JS中运行函数?

从Node JS的完成函数中忽略异常

填充异步函数后返回数组 - Node.js

如何让 Node JS 中的函数只运行一次

如何在Node.js或Javascript中将异步函数调用包装到同步函数中?

Node.JS异步函数永远运行没有结果

即使等待位于 Node.js 中的异步函数中,如何修复“await 仅在异步函数中有效”?

如何在Javascript / Node中的异步函数上调用Await后超时

在 node.js 函数中运行 firebase 'on' 时,如何在拉取所有记录后关闭连接

测试执行后函数运行前的 node.js mocha

如何为Node.js编写异步函数

如何重写异步函数(node.js,和尚)

如何从AWS Lambda node.js异步函数返回数据?

Node.js-如何通过回调调用异步函数?

在 JavaScript/node js 中的 for 循环中调用异步函数

正确的过程以在node.js中调用多个异步函数

Node.js API 中的异步函数未按预期工作

在异步函数内写入 Node.JS 中的文件

如何避免Node.js中异步函数的长时间嵌套

如何测量Node.js中异步函数的执行时间?

Node.js 异步函数并行执行?