javascript - 如何在 Node JS 中编写非阻塞 if 语句?

标签 javascript node.js blocking nonblocking

我在 php 中有一个 if 语句:

if ( $isTrue && db_record_exists($id)) { ... } 
else { ... };

第一个条件是真/假 bool 检查。

第二个条件调用一个函数来查看数据库表中是否存在一行并返回 true 或 false。

我想在 Node JS 中重写这个条件,使其成为非阻塞的。

我重写了 db_record_exists 如下...

function db_record_exists(id, callback) {
  db.do( "SELECT 1", function(result) { 
    if (result) { callback(true); }
    else { callback(false); }
  );
}

...但我不知道如何使用 bool 检查将其合并到更大的 if 语句中。例如,下面的语句没有意义:

if (isTrue and db_record_exists(id, callback)) {
...
}

“Node ”的写法是什么?

如有任何建议,我们将不胜感激。

(预先)感谢您的帮助。

最佳答案

首先检查变量,然后检查回调内异步调用的结果。

if (isTrue) db_record_exists(id, function(r) {
    if (r) {
        // does exist
    } else nope();
});
else nope();

function nope() {
    // does not exist
}

关于javascript - 如何在 Node JS 中编写非阻塞 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15419220/

相关文章:

javascript - 使用 Snap.svg 选择 Fragment 的 <svg> 根

javascript - Vue - 通过 vue 组件传递 prop 数组导致未定义错误

node.js - 在 $group 之前使用 $unwind 进行 Mongoose 聚合

javascript - jQuery 表单标签上的 for 属性

javascript - API 调用未返回数据。 http.get()

node.js - 锐包 Heroku 部署问题

node.js - 使用 shell 脚本将 node.js 输出重定向到文本文件

c# - 当用于暂停线程时,循环 Thread.Sleep() 是否会影响性能?

java - 中断 Java DataInputStream readFully()

java - KeyEvent keyPressed 组合键被阻止