首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >connection && connection.close();

connection && connection.close();
EN

Stack Overflow用户
提问于 2019-04-11 18:48:37
回答 2查看 58关注 0票数 0

我正在阅读一些使用Node.js和繁琐的代码来创建连接到MS SQL Server的全栈应用程序。我偶然发现了这件作品。

代码语言:javascript
复制
function createRequest(query, connection) {
    var Request = require('tedious').Request;
    var req =
        new Request(query, 
                function (err, rowCount) {
                        if (err) {
                            console.trace(err);
                            throw err;
                        }
                        connection && connection.close();
                        console.log('Connection closed');
                });
    return req;
}

谁能解释一下connection && connection.close();这行是做什么的?

EN

回答 2

Stack Overflow用户

发布于 2019-04-11 18:54:30

connection && connection.close()实际上是我不推荐的一种“技巧”。

这意味着

代码语言:javascript
复制
if (connection) {
  connection.close()
}

诀窍是使用&&运算符作为一种简写语法。如果左边的表达式是假的(例如undefinednull ),那么右边的表达式甚至不会被求值。

您可以使用以下命令进行尝试

代码语言:javascript
复制
true && console.log('Hello')
// 
false && console.log('will never be logged')

There is a dedicated part about this short-circuit in the MDN documentation

票数 2
EN

Stack Overflow用户

发布于 2019-04-11 18:55:05

与以下内容相同

代码语言:javascript
复制
if(connection){
    connection.close()
}

它之所以有效,是因为&&返回第一个Falsy结果。

即:

代码语言:javascript
复制
console.log(false && 'something'); // false

console.log(true && 'something'); // 'something'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55630679

复制
相关文章

相似问题

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