首页 > 解决方案 > 然后在部署节点 js 函数时捕获错误

问题描述

我正在尝试从 Github 运行示例代码以将数据插入到 Fire Store 数据库中,但出现错误。

这是错误:

 21:1   error    Expected catch() or return promise/catch-or-return
 21:35  error    Each then() should return a value or throw  promise/always-return a value  or  throw

这是我收到错误的代码:

// getting data
db.collection('cafes').get().then((snapshot) => {  //----line 21 
snapshot.docs.forEach(doc => {
renderCafe(doc);

})
});

标签: javascriptnode.jsgoogle-cloud-firestore

解决方案


这些看起来像 lint 警告,而不是实际的 JS 错误,除非您在某些非标准环境中运行它。

第一个似乎告诉您您无法.catch()处理 db 中的错误.get()。这是个好建议。您必须处理错误。

第二个似乎是错误的。没有规定必须从 a 返回值.then()。如果它是链的末端并且您已完成处理,则没有理由返回任何东西。您可以通过放一个return 0after来消除第二个警告renderCafe(doc),尽管我个人要么停止使用提供如此糟糕建议的工具,要么将其配置为不对这个问题发出警告,因为它是错误的,只是添加了虚拟的、非功能性的代码我不建议让一些工具开心。


推荐阅读