数组中每个节点的 node.js 异步瀑布

瑞安·克努森

我有一个允许用户评论电影的应用程序,我正在尝试添加一个功能,从电影中抓取海报并将其显示在评论旁边。我尝试使用

查询数据库并返回电影列表 => imdb-id获取 IMDB ID => imdb获取海报 url => 将其添加到变量中并使用 pug 编译

但是,我无法让它工作,因为数组总是在其他任何运行之前先返回空。我尝试使用异步瀑布,但我不知道如何遍历返回的数组,并传递 ID 以获取 url

async.waterfall([
    function (callback) {
        console.log('Request Id:', username);
        var query = "SELECT title, rating, review FROM movies WHERE username = \"" + username + "\" ORDER BY title;";
        callback(null, query);
    }, function (query, callback) {
        // Run query on db
        connection.query(query, callback);
    }, function (rows, fields, cb) {
        // Get array of titles
        var rowArray = rows;
        console.log(rowArray);
    }
],
function(err) {
    // error stuff
})
肯特

我建议您改用 promises 或 es2017 async/await。

旁注:异步瀑布中的第一个块无论如何都是同步的,并且您不会在那里执行任何冗长的操作。您可以将 connection.query 行合并到其中。

使用 async/await,您的代码可能如下所示:

async function sendQuery() {
  console.log('Request Id:', username);
  const query = "SELECT title, rating, review FROM movies WHERE username = \"" + username + "\" ORDER BY title;";

  try {
    const rows = await connection.query(query);
    console.log(rowArray);
  } catch(err) {
     console.log(err);
  }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在node.js中使用异步瀑布

来自分类Dev

在Node.js中使用异步瀑布进行函数迭代

来自分类Dev

嵌套在async.js瀑布中的异步函数

来自分类Dev

如何在Node.js中使用异步瀑布进行API调用

来自分类Dev

Node.js异步模块瀑布-动态加载和执行函数

来自分类Dev

带有异步瀑布/ Node.js的未定义“回调”

来自分类Dev

在 node.js 8.10 中使用异步瀑布进行 AWS Lambda 查询

来自分类Dev

瀑布内部的节点异步并行

来自分类Dev

节点 - 在 for 循环中的异步瀑布

来自分类Dev

为什么我无法在异步瀑布功能中更新Node客户端会话?

来自分类Dev

异步 JS - 瀑布中的函数没有正确执行回调

来自分类Dev

节点异步瀑布回调已被调用

来自分类Dev

节点异步瀑布回调已被调用

来自分类Dev

使用带有参数回调的数组的节点异步瀑布

来自分类Dev

在地图 node.js 中使用瀑布

来自分类Dev

Node.js异步数组迭代

来自分类Dev

异步数组的node.js安全

来自分类Dev

Node.js异步数组迭代

来自分类Dev

在Node.js异步中设置JSON数组

来自分类Dev

延迟节点js中的每个循环迭代,异步

来自分类Dev

在node.js中异步循环

来自分类Dev

Node.js中的异步函数

来自分类Dev

Node.js中的异步混乱

来自分类Dev

在Node.js中运行异步过程

来自分类Dev

Node.js中的异步混乱

来自分类Dev

node.js中的foreach异步功能

来自分类Dev

node.js异步每个函数回调失败

来自分类Dev

Node.js的承诺:异步推送到数组并保存

来自分类Dev

Node.js的承诺:异步推送到数组并保存