запрос-обещание `.catch` выдает ошибку - PullRequest
0 голосов
/ 06 октября 2019

Я хочу задать вопрос о запросе-обещании в nodeJS.

Я новичок в nodeJS, и до сих пор я создал следующий код:

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

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

Все это прекрасно работает.

Когда я добавляю цикл перехвата, как показано ниже:

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)

1 Ответ

1 голос
/ 07 октября 2019

Ваша ошибка - это проблема синтаксиса, вы включаете точку с запятой после .then(), но если вы хотите перехватить потенциальные ошибки с помощью перехвата, вам необходимо включить .catch() и затем вставить точку с запятой.

Правильный синтаксис:

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