Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将数组从一个回调传递到另一个回调或在不同的块中, 我必须传递第二个iftype==1中的所有用户id_Node.js - Fatal编程技术网

Node.js 如何将数组从一个回调传递到另一个回调或在不同的块中, 我必须传递第二个iftype==1中的所有用户id

Node.js 如何将数组从一个回调传递到另一个回调或在不同的块中, 我必须传递第二个iftype==1中的所有用户id,node.js,Node.js,以下是我的代码,我做错了什么: var list = []; if (type === "0") { console.log("# send to users #"); var query = "SELECT user_id FROM users WHERE user_id = " + id; connection.query(query, function(err, rows) { if (err) { console.log(err); thro

以下是我的代码,我做错了什么:

var list = [];

if (type === "0") {
  console.log("# send to users #");
  var query = "SELECT user_id FROM users WHERE user_id = " + id;
  connection.query(query, function(err, rows) {
    if (err) {
      console.log(err);
      throw err;
    } else {
      if (rows.length > 0) {
        for (i = 0; i < rows.length; i++) {
          list.push(rows[i].user_id);
        }
      }
    }
  });
}
if (type === "1") {
  console.log(list); //empty
   console.log("# send to group users #");
  var query = "SELECT *FROM group_users WHERE group_id = " + id;
  connection.query(query, function(err, rows) {
    if (err) {
      console.log(err);
      throw err;
    } else {
      if (rows.length > 0) {
        for(i=0;i<rows.length;i++){
         if(list.user_id !== rows[i].group_user_id){
               console.log(rows[i].group_user_id); // need to display only those user who is not in the users table
         }
        }
      }
    }
  }); 
}
我的目的是只向不同的用户发送更新联系人消息,
由于用户可能在组中连接,因此,我只想使用不同的用户

不清楚你想做什么,但有几件事你做错了。首先,当type=='1'时,列表将始终为空,我认为这就是您正在讨论的问题。 第二,列出它的数组,所以这行代码

if(list.user_id !== rows[i].group_user_id)
将永远不会按您希望的方式工作,因为作为数组的列表没有名为“user\u id”的键。 为了澄清一些概念:

var ex1 = { user_id: '123'};
var ex2 = [123];
console.log(ex1.user_id); //123
console.log(ex2[0]); //123
对于您所说的,我猜您需要type=='1'部分的列表值,因此您应该在两个if语句之前获取这些值,然后根据您的喜好处理数据,据我所知,您不需要回调来处理此问题。 大概是这样的:

var list = getListValues();
if(type==='0'){
//do whatever you want
}
if(type==='1'){
//now you have the list values here
}

希望这能有所帮助。

解释更多。。。将相关代码放入require语句sok,我已更新了我的查询,感谢您澄清我的概念,但我已更新了此部分iflist[0]!==行[i]。组\用户\ id仍然没有获得任何值。查看我发送的内容:userto_id_list:[{id:'409',type:'0'},{id:'3',type:'0'},{id:'618',type:'1'}];其中,618是一个组,该组可能包含相同的id409,3,。。。所以我需要过滤不同的用户。它使用异步循环进行迭代,并查找id和类型,然后我检查iftype=='0'和iftype=='1'。对不起,我不明白您想要什么,我需要查看完整的代码。