预期的catch()或返回[promise / catch-or-return],而每个then()应该返回一个值或抛出[promise / always-return]

时间:2019-02-02 14:55:57

标签: node.js firebase google-cloud-functions eslint

我在第11行和第12行中遇到两个错误。

期望的catch()或返回[promise / catch-or-return]并且每个then()应该返回一个值或抛出[promise / always-return]

我正在尝试将ExpressJS API部署到Firebase托管

const functions = require('firebase-functions');
const express = require('express');
const app = express();


app.get('/api', (req, res) => {
    var qu = req.param('q');
    const DuckDuckScrape = require("duck-duck-scrape");
const ddg = new DuckDuckScrape();
    var search = ddg.search(qu, -1, "en-us");
    search.then((data) => {
        res.send(data)
      }) ;  


  });

  exports.app = functions.https.onRequest(app);

请通过解决问题来帮助我。

1 个答案:

答案 0 :(得分:0)

这似乎是某种皮棉程序的错误,而不是实际的Java解释器的错误。如果是这样的话,那么你或许可以使棉短绒满意这样的:

const functions = require('firebase-functions');
const express = require('express');
const app = express();
const DuckDuckScrape = require("duck-duck-scrape");


app.get('/api', (req, res) => {
    const qu = req.param('q');
    const ddg = new DuckDuckScrape();
    ddg.search(qu, -1, "en-us").then(data => {
        res.send(data);
    }).catch(e => {
        console.log(e);
        res.sendStatus(500);
    });
  });

  exports.app = functions.https.onRequest(app);

这涵盖了几个可能的皮棉问题。首先,这里有一个.catch(),所以不会丢失任何错误处理。其次,没有任何希望可言的是,短毛绒认为您以后可以使用它,因此它抱怨.then()没有返回值。

如果仍然收到第二个警告,我可能会找到配置并关闭该警告,因为这里太过热情了,因为.then()不需要返回值,但是您也可以添加一个{{ 1}}或更改为return null;(如果您确实只是想消除警告)。我个人不会添加不必要的代码只是为了使无关的棉绒警告消失。我宁愿禁用错误的警告。