Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
Javascript 使用node.js中数据库请求的结果_Javascript_Node.js_Asynchronous_Coffeescript_Redis - Fatal编程技术网

Javascript 使用node.js中数据库请求的结果

Javascript 使用node.js中数据库请求的结果,javascript,node.js,asynchronous,coffeescript,redis,Javascript,Node.js,Asynchronous,Coffeescript,Redis,如果我想这样做,我不确定回调函数应该是什么样子。这两个函数都在一个类中,我真的想抽象它 doesexist: function(setvalue) { redisclient.sismember('setname', setvaue, callbackfuntion(value)); } someothermethod: function() { if (doesexist()){ // doSomething } } 在异步环境中我将如何做到这一点 更新: 我现在就这样

如果我想这样做,我不确定回调函数应该是什么样子。这两个函数都在一个类中,我真的想抽象它

doesexist: function(setvalue) {
  redisclient.sismember('setname', setvaue, callbackfuntion(value));
}

someothermethod: function() {
  if (doesexist()){
    // doSomething
  }
}
在异步环境中我将如何做到这一点

更新:

我现在就这样试过了(咖啡脚本):


它似乎工作得很好。

您应该签出控制流库,为了确定哪种方法最适合您,我更喜欢异步库

要回答你的问题,你可以用以下方式解决问题:

doesexist: function(setvalue, callback) {
    redisclient.sismember('setname', setvaue, callback);
}

someothermethod: function(somevalue) {
   doesexist(somevalue, function(err, exists) {
         if (exists) {
            // doSomething
         }
   })
}
我希望这有帮助


杰伊

我想出来了。一个基本上是用回调函数替换if语句。简单的说,如果你对自己正在做的事情有更高的认识,但如果你不习惯的话,那就很难了


有关答案,请参阅我的更新

看看我如何处理类似的查询WebSQL数据库的方式(在Chrome中)。请特别注意,在循环
INSERT
s之前,当我在
DROP
ing和
CREATE
ing时,递归的
populate
调用。如果您也想运行该脚本,那么我能够克服JSFIDLE中的安全错误的唯一方法就是在本地运行它,就像在“将它保存到桌面”中一样?我打算在这里发布一个关于你真正想要什么的答案,这是对你的问题的延迟承诺。请参阅,(查找CoffeeScript示例链接)和。漂亮的东西。是的,我看了图书馆,但它们真的让这个例子更容易吗?我喜欢async的功能,但我认为它们对于我在这里所做的工作来说是不必要的,或者我就是想不出正确的功能。我看过async。对于我的问题,您会使用什么功能?您是正确的,当您有多个嵌套回调时,异步和其他流控制库非常有用。在这种情况下,使用上面提供的方法更容易、更有效。我提到它们是为了在你遇到更复杂的情况时参考。
doesexist: function(setvalue, callback) {
    redisclient.sismember('setname', setvaue, callback);
}

someothermethod: function(somevalue) {
   doesexist(somevalue, function(err, exists) {
         if (exists) {
            // doSomething
         }
   })
}