CNode

初接触Nodejs 遇到的疑惑

Gg3253769发布于13 年前最后回复13 年前2 回复3688 浏览0 收藏

初次接触这门神奇的语言 觉得非常棒的设计思想。但是对于js的某些知识也不熟悉不知道从何查起 特来求助。我使用mongoose的进行数据操作的时候。

//我想根据查询出一个findOne查询出一个数据:
var findByOne=function(query){
    db.findOne(query,function(err,data){
        return data;//这个数如何返回出去呢?
                    //我想返回给调用这个findByOne函数的使用者
        });
};
查看回复

回复 (2)

D
dingwei#1·13 年前
  1. 不应该返回去然后处理,因为这是异步编程模式,你如果在这个function之后立即使用,可能会提示这个值是undefined.因为异步是立即返回的,可能回调函数还没被回调时,你的返回值又被下一条用上了, 这时就是undefined了
  2. 我感觉正确的写法应该在这个回调函数里对data做相应的处理,而不是同步编程模式中的先赋值再处理
  3. 当然你也可以用同步编程模式,要用别的库async之类的,但是学nodejs就得了解这种异步编程模型 仅供参考
参与回复
登录后即可参与回复。登录