即使返回值有效,我的函数也会返回undefined.

console.log(getNotParsedArticle());

function getNotParsedArticle() {
    db.all('SELECT article_link FROM helpdb WHERE done = 0 LIMIT 1', (err, result) => {
        if(err){
            console.log(err.message);
            return null;
        }
        console.log("Got not parsed article: " + result[0].article_link);
        return result[0].article_link;
    });
}

控制台输出:

undefined
Got not parsed article: /article/c/basic-medicine

我try 将异步添加到函数中,并使用等待调用它,结果相同.

db = new sqlite3.Database

推荐答案

您的getNotParsedArticle函数不返回从数据库获得的值.您可以修改您的函数以使用promise来处理异步操作并返回一个promise ,该promise 将使用从数据库获得的值进行解析.

function getNotParsedArticle() {
    return new Promise((resolve, reject) => {
        db.all('SELECT article_link FROM helpdb WHERE done = 0 LIMIT 1', (err, result) => {
            if(err){
                console.log(err.message);
                reject(err);
            } else {
                console.log("Got not parsed article: " + result[0].article_link);
                resolve(result[0].article_link);
            }
        });
    });
}


getNotParsedArticle()
    .then(articleLink => {
        console.log(articleLink); 
    })
    .catch(error => {
        console.error("Error occurred:", error);
    });

Javascript相关问答推荐

根据总价格对航班优惠数组进行排序并检索前五个结果- Angular HTTP请求

如何在表格上拥有水平滚动条,在正文页面上拥有垂直滚动条,同时还对html表格的标题使用位置粘性?

if/else JavaScript中的条件行为

为什么promise对js中的错误有一个奇怪的优先级?

未捕获错误:[]:getActivePinia()被调用,但没有活动Pinia.🍍""在调用app.use(pinia)之前,您是否try 使用store ?""

如何从Intl.DateTimeFormat中仅获取时区名称?

JS,当你点击卡片下方的绿色空间,而它是在它的背后转动时,

如何将Cookie从服务器发送到用户浏览器

并不是所有的iframe都被更换

还原器未正确更新状态

如何在Angular17 APP中全局设置AXIOS

更新动态数据中对象或数组中的所有值字符串

使用VUE和SCSS的数字滚动动画(&;内容生成)

如何在DYGRAPS中更改鼠标事件和键盘输入

OnClick更改Json数组JSX中的图像源

是否可以在不更改组件标识的情况下换出Reaction组件定义(以维护状态/引用等)?如果是这样的话,是如何做到的呢?

在传单的图像覆盖中重新着色特定 colored颜色 的所有像素

使用Java脚本替换字符串中的小文本格式hashtag

如何在不将整个文件加载到内存的情况下,在Node.js中实现Unix粘贴命令?

错误400:当我试图在React中使用put方法时,该字段是必需的