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
}
})
}