function return undefined,而不是 true/false boolean expr 调用时
function return undefined, instead of true/false boolean expr when calling
我想使用 Javascript NodeJs、Bookshelf...
检查 slug 是否已经存在
到目前为止,我的代码实际上不起作用:
var makeSlug = function (slug) {
var baseSlug = slug;
var i = 1;
//console.log("RETURN: " + slug_exists(slug));
while (slug_exists(slug)) {
slug = baseSlug + '-' + i;
i++;
}
return slug;
};
var slug_exists = function (album) {
new Album({slug: slugify(album)})
.fetch()
.then(function (album) {
if (album) {
console.log("trueee");
return true;
} else {
console.log("falseee");
return false;
}
});
};
在代码的某处,我将此函数称为 var newSlug = makeSlug('Endless River');
似乎 slug_exists 函数不 return 我真的 eventhou 它打印 "trueee",因此 while 循环也不起作用......
有什么建议,帮忙看看你会怎么做?
你不能 return 这样,在 promise 的回调内部(因为它将是 that 函数的 return
,而不是外部一个).
既然你已经有了承诺,return 就让 makeSlug()
检查 then()
。
var slug_exists = function (album) {
return new Album({slug: slugify(album)}).fetch();
};
我想使用 Javascript NodeJs、Bookshelf...
检查 slug 是否已经存在到目前为止,我的代码实际上不起作用:
var makeSlug = function (slug) {
var baseSlug = slug;
var i = 1;
//console.log("RETURN: " + slug_exists(slug));
while (slug_exists(slug)) {
slug = baseSlug + '-' + i;
i++;
}
return slug;
};
var slug_exists = function (album) {
new Album({slug: slugify(album)})
.fetch()
.then(function (album) {
if (album) {
console.log("trueee");
return true;
} else {
console.log("falseee");
return false;
}
});
};
在代码的某处,我将此函数称为 var newSlug = makeSlug('Endless River'); 似乎 slug_exists 函数不 return 我真的 eventhou 它打印 "trueee",因此 while 循环也不起作用...... 有什么建议,帮忙看看你会怎么做?
你不能 return 这样,在 promise 的回调内部(因为它将是 that 函数的 return
,而不是外部一个).
既然你已经有了承诺,return 就让 makeSlug()
检查 then()
。
var slug_exists = function (album) {
return new Album({slug: slugify(album)}).fetch();
};