请求承诺 .catch 抛出错误

request-promise `.catch` throwing up an error

我想问一个关于nodeJS中的request-promise的问题。

我是 nodeJS 的新手,到目前为止我已经生成了以下代码:

const rp = require('request-promise');

rp('https://jsonplaceholder.typicode.com/users/1')
    .then((htmlstring) => {
        console.log(htmlstring);
    });

一切正常。

当我如下添加 catch 循环时:

const rp = require('request-promise');

rp('https://jsonplaceholder.typicode.com/users/1')
    .then((htmlstring) => {
        console.log(htmlstring);
    });
    .catch((err) => {
        console.log('Error', err);
    }

我收到一个错误。

我很困惑。我读过一个以前的问题,其中一个解决问题的方法是添加一个参数,但我在这种情况下这样做了,即 err

为什么会出现以下错误?

/workspace/APIcourse/JSONplaceholder.js:8
        .catch((err) => {
        ^

SyntaxError: Unexpected token .
    at new Script (vm.js:80:7)
    at createScript (vm.js:274:10)
    at Object.runInThisContext (vm.js:326:10)
    at Module._compile (internal/modules/cjs/loader.js:664:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
    at startup (internal/bootstrap/node.js:283:19)

你的错误是一个语法问题,你在 .then() 之后包含了一个分号,但是如果你想使用 catch 捕获潜在的错误,你需要包含 .catch() 然后插入分号。

正确的语法:

rp('https://jsonplaceholder.typicode.com/users/1')
    .then((htmlstring) => {
        console.log(htmlstring);
    }).catch((err) => {
        console.log('Error', err);
    };