javascript - 将knex的查询结果传递给变量

原文 标签 javascript node.js electron knex.js

我正在尝试将Knexjs的选择查询的结果归因于一个变量。
我的代码是这样的:

function getAllCategories() {
let categories;
categories = database.from("categories").select("category").then(function (rows) {
    for (let row of rows) {
        console.log(row)
    }
    });
console.log(categories)

}

当我调用函数时:
然后在终端上写如下的对象数组:
{ category: 'Pasticceria' }
{ category: 'Salati' }
...

相反,如果我console.log(categories);在终端上打印:
    Promise [Object] {
  _bitField: 0,
  _fulfillmentHandler0: undefined,
  _rejectionHandler0: undefined,
  _promise0: undefined,
  _receiver0: undefined
}

我怎样才能赋予变量循环功能?
非常感谢大家的帮助,我已经好几天没碰过头了。

最佳答案

getAllCategories返回promise,这是您在调用函数时看到的内容。最简单的方法是将调用getAllCategories的代码包装在异步函数中,然后等待getAllCategories的值。我假设您希望getAllCategories返回类别,所以它可能看起来像这样:

async function wrapper() { 
  async function getAllCategories() {
    return database.from("categories").select("category")
  };
  const categories = await getAllCategories() 
  // do whatever you want to do with categories
 }


您可以阅读有关异步/等待语法here的信息

关于javascript - 将knex的查询结果传递给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58716394/

相关文章:

node.js - 模块构建失败(来自 ./node_modules/html-loader/dist/cjs.js):

angular - 使用路由在 Angular 6 中打开新的浏览器窗口

javascript - 使用 Workbox 预缓存 Firebase JS 文件 - 被 CORS 阻止

javascript - 饼图系列颜色在NodeRed上为黑色

node.js - 亚马逊 AWS Lambda NodeJS 日志记录

node.js - 如何将两位小数合并为一个大端?

javascript - 为什么在大多数代码编辑器中 “-webkit-app-region”都不是定义的CSS属性?

javascript - 禁用 HighCharts 上的悬停

javascript - Mocha 测试用例 - 嵌套的 it() 函数是否符合标准?

javascript - 选择索引更改下拉列表 asp.net 更新面板后 Jquery Datatable 丢失