gpt4 book ai didi

javascript - 有人可以解释一下这个递归函数 MongooseJS

转载 作者:行者123 更新时间:2023-11-28 07:48:50 26 4
gpt4 key购买 nike

我看过this功能。

我可以看到它生成了一个slug,但我不太明白它是如何工作的。在 327 行,它返回来自 Model.findOne 函数的 promise ,但在该 Model.findOne 函数的回调中,它们递归地调用再次从第 321 行开始的外部函数。

有人可以帮助我吗?我还需要生成一些独特的 slugs,这似乎是一个解决方案 - 如果我能理解的话。

最佳答案

示例中的

checkIfSlugExists 函数可确保数据库中不存在带有 slugToFind slug 的文档。

checkIfSlugExists 不仅检查 slug 是否为空,而且还具有一些故障转移机制。因此,最终它返回一个对空的 slug 的 promise :

  1. 如果slugToFind在数据库中不存在,则返回它(第331行)。
  2. 否则 checkIfSlugExists 检查 longSlug(第 338-341 行),它只是原始 slugToFind 的更长版本
  3. 如果 slugToFindlongSlug 均已获取,则 checkIfSlugExists 开始向 longSlug 添加数字(第 code>344-355),从2开始,直到找到一个空的slug。

每次 checkIfSlugExists 想要检查一些新的 slug 时,它都会用这个新值递归地调用自身。

关于javascript - 有人可以解释一下这个递归函数 MongooseJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27108175/

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