gpt4 book ai didi

javascript - 具有 promise 的 Node js Controller 的多个导出点

转载 作者:行者123 更新时间:2023-11-29 21:38:38 25 4
gpt4 key购买 nike

以下代码片段是一个 nodeJS Controller 方法,它调用一个返回延迟 promise 的服务。我试图了解处理多个存在点的最佳方法。

例如,如果服务返回一个空对象,我希望 promise 链存在并向用户返回响应“Nothing found here”。如果它确实找到了一些东西,它就会从步骤 1 移动到 promise 链中的下一个项目,即步骤 2。

根据我的测试,它似乎正在返回 json 响应,然后进入下一个逻辑步骤,即第 2 步。这个逻辑现在无法在服务中处理,即如果没有找到返回错误的项目。

module.exports.show = function (req, res) {

service.getItem(itemId)
.then(function (item) {
if (!item) {
return res.json('Nothing found here');
}
// Step 1
// do some work on the item
return item;
})
.then(function (foundItem) {
// Step 2
// do some more work on the item
return res.json('Item has changed ' + foundItem);
})
.catch(function (err) {
return res.json(err);
});
};

最佳答案

试试下面的代码。错误被捕获处理程序捕获。我还更改了 if 子句(我假设这就是您的实际意思):

module.exports.show = function (req, res) {

service.getItem(itemId)
.then(function (item) {
if (!item) {
throw new Error('Nothing found here');
}
// Step 1
// do some work on the item
return item;
})
.then(function (foundItem) {
// Step 2
// do some more work on the item
return res.json('Item has changed ' + foundItem);
})
.catch(function (err) {
return res.json(err);
});
};

关于javascript - 具有 promise 的 Node js Controller 的多个导出点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34004513/

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