gpt4 book ai didi

javascript - 何时在 Sequelize promise 中使用 return ?

转载 作者:行者123 更新时间:2023-12-03 22:39:37 27 4
gpt4 key购买 nike

我是 Sequelize 和 Promises 的新手,对于不太熟悉它们和 javaScript 语言的人来说,这可能有点令人困惑。无论如何,我注意到在一些 promise 的实现中,使用了“返回”。在其他实现中,它不是。
例如:

 //FILL JOIN TABLE FROM EXISTING DATA
Blog.find({where: {id: '1'}}) .then(blog => {
return Tag.find({where: {id: '1'}}).then(tag => {
return blog.hasTag(tag).
then(result => {
// result would be false BECAUSE the blog.addTag is still not used yet
console.log("3 RESULT IS"+ result);
return blog.addTag(tag).
then(() => {
return blog.hasTag(tag).
then(result => {
// result would be true
console.log("4 RESULT IS"+ result);
})
})
})
})
})

在这里:它们没有被使用。
const tags = body.tags.map(tag => Tag.findOrCreate({ where: { name: tag }, defaults: { name: tag }})
.spread((tag, created) => tag))

User.findById(body.userId) //We will check if the user who wants to create the blog actually exists
.then(() => Blog.create(body))
.then(blog => Promise.all(tags).then(storedTags => blog.addTags(storedTags)).then(() => blog/*blog now is associated with stored tags*/)) //Associate the tags to the blog
.then(blog => Blog.findOne({ where: {id: blog.id}, include: [User, Tag]})) // We will find the blog we have just created and we will include the corresponding user and tags
.then(blogWithAssociations => res.json(blogWithAssociations)) // we will show it
.catch(err => res.status(400).json({ err: `User with id = [${body.userId}] doesn\'t exist.`}))
};

有人可以向我解释“返回”的用法吗?显然没有必要,因为第二个代码有效?那么我什么时候需要使用它呢?
谢谢!!

最佳答案

从技术上讲,您询问了 箭头函数

const dummyData = { foo: "lorem" };

const af1 = () => dummyData;

const af2 = () => {
dummyData.foo = "bar";
return dummyData;
};

const af3 = () => { foo: "bar" };

const af4 = () => ({
foo: "bar"
});

console.log(af1());

console.log(af2());

console.log(af3()); // Be aware if you wanna return something's started with bracket

console.log(af4());


如您所见,我们在 return 中使用了 af1 语句,因为我们必须在返回值之前编写另一个“逻辑”。如果不这样做,则可以避免使用 return 语句(它可以提高代码的简单性和可读性)。

关于javascript - 何时在 Sequelize promise 中使用 return ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51438703/

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