【发布时间】:2011-12-18 22:32:31
【问题描述】:
新手问题。为什么这个 JavaScript 函数返回 undefined?
var redis = require("redis"), client = redis.createClient();
function generatePageUrl() {
var randomStr = randomInt.toString(32);
// Check whether this URL is already in our database;
client.smembers("url:" + randomStr, function (err, data ) {
if (data.length != 0) {
// URL already in use, try again
return getPageUrl();
}
return randomStr;
});
}
var page_url = generatePageUrl();
// add it to the database, etc
我猜它一定是在到达client.smembers内部之前到达终点并返回。
但我确实需要在 Redis 返回之前检查它的内容:我可以让它从回调内部返回吗?如果没有,我该怎么办?
此外,欢迎对我递归使用此函数的方式提出建议 - 我不确定这是否完全明智 :)
感谢您帮助新人。
【问题讨论】:
标签: javascript node.js redis