gpt4 book ai didi

javascript - 从函数返回结果(javascript、nodejs)

转载 作者:IT老高 更新时间:2023-10-28 22:05:09 24 4
gpt4 key购买 nike

有人可以帮我处理这段代码吗?我需要从 routeToRoom 函数返回一个值:

var sys = require('sys');

function routeToRoom(userId, passw) {
var roomId = 0;
var nStore = require('nstore/lib/nstore').extend(require('nstore/lib/nstore/query')());
var users = nStore.new('data/users.db', function() {

users.find({
user: userId,
pass: passw
}, (function(err, results) {
if (err) {
roomId = -1;
} else {
roomId = results.creationix.room;
}
}
));
});
return roomId;
}
sys.puts(routeToRoom("alex", "123"));

但我总是得到:0

我猜 return roomId;roomId=results.creationix.room 之前执行。有人可以帮我处理这段代码吗?

最佳答案

function routeToRoom(userId, passw, cb) {
var roomId = 0;
var nStore = require('nstore/lib/nstore').extend(require('nstore/lib/nstore/query')());
var users = nStore.new('data/users.db', function() {
users.find({
user: userId,
pass: passw
}, function(err, results) {
if (err) {
roomId = -1;
} else {
roomId = results.creationix.room;
}
cb(roomId);
});
});
}
routeToRoom("alex", "123", function(id) {
console.log(id);
});

您需要使用回调。这就是异步 IO 的工作原理。顺便说一句 sys.puts 已弃用

关于javascript - 从函数返回结果(javascript、nodejs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7255956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com