gpt4 book ai didi

javascript - 基于查询参数的可选 promise 步骤

转载 作者:行者123 更新时间:2023-11-30 10:06:37 25 4
gpt4 key购买 nike

我有一个函数可以从数据库中检索博客文章。相同的功能用于特定类别的博客文章。这是查询:

Post.find( params ).limit(5)

然而,当要查找一个类别时,必须首先检索类别的 id(查询参数是它的永久链接):

Category.findOne({ permalink: req.params.category})

我如何使用 promises 来避免像这样写重复的东西:

// a category is present
if (typeof req.params.category !== 'undefined'){
Category.findOne({ permalink: req.params.category}).then(function(category){
params.category = category.id
Post.find(params).limit(5).exec(function(err,posts){
// yada-yada
})
}
}
// no category
else {
Post.find(params).limit(5).exec(function(err,posts){
// yada-yada
})
}

最佳答案

您可以为 params 做出 promise - 从类别 ID 请求或简单地使用 Promise.resolve当不需要时。然后,您可以简单地链接您的 find 调用:

((typeof req.params.category !== 'undefined')
? Category.findOne({permalink: req.params.category}).then(function(category){
params.category = category.id
return params;
})
: Promise.resolve(params)
).then(function(p) {
return Post.find(p).limit(5).exec();
}).then(function(posts) {
// yada-yada
});

关于javascript - 基于查询参数的可选 promise 步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28789036/

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