首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js/JavaScript/SQL -序列的顺序

Node.js/JavaScript/SQL -序列的顺序
EN

Stack Overflow用户
提问于 2018-07-13 18:56:55
回答 4查看 207关注 0票数 0

我是JavaScript的新手,我只知道Java和C。

我目前正在为我自己的Discord Server编写一个机器人,我有一个很大的问题:

凭借我的Java知识,我认为这段代码将会工作:

代码语言:javascript
复制
function eintraegeVon(authorID)  {
var sql = "SELECT * FROM user WHERE discord_id = ?";
var query = con.query(sql, authorID, function (err, result) {
    if (err) {
        throw err;
        return -1;
    }
    return result.length;
});
console.log("Test if this is reached in the program");
}

我认为永远不会到达console.log("Test...")这一行,因为在这一行之前,查询序列中的一个返回命令->函数已经完成。或者,如果它存在错误,它将在错误之前执行,返回值为-1。

当我添加一些用于调试的控制台写命令时,我看到的第一个命令是"test...“命令,然后继续调用函数"eintraegeVon“的函数的其余部分,并在最后完成"return result.length"-command。

为何会这样呢?

我读到了一些关于它的东西,node.js可以是异步的,但是为什么这个函数不像Java那样在每个命令后一个命令地处理呢?

EN

回答 4

Stack Overflow用户

发布于 2018-07-13 19:00:50

正如您所说,node是异步的,并且是“测试...”日志在您从数据库获取答案之前执行。您在查询中传入的函数将在您从数据库中获得答案后执行。

票数 0
EN

Stack Overflow用户

发布于 2018-07-13 19:07:31

查询函数异步执行,然后继续执行,这就是消息get首先打印出来的原因。您应该熟悉javacript和node.js的这一方面,因为您将在任何地方遇到它。查看本教程:Understanding Async Programming in Node.js还可以查看处理异步代码的最新方法:Callbacks, Promises and Async/Await

票数 0
EN

Stack Overflow用户

发布于 2018-07-13 19:12:19

Node.js是异步的,它是非阻塞的,这意味着它不会等待函数结束,它会跳到下一行或下一个函数。但之前的函数调用在结束时也会返回。通过使用回调函数,可以实现顺序执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51323545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档