如果已经存在使用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函数不会返回我的真实事件它打印“trueee”,因此while循环也不起作用... 任何建议,帮助你怎么做?
答案 0 :(得分:1)
你不能在承诺的回调中回复(因为 函数的return
,而不是外部函数)。
由于您已经有了承诺,请将其退回并让makeSlug()
检查then()
。
var slug_exists = function (album) {
return new Album({slug: slugify(album)}).fetch();
};