请求承诺`.catch`引发错误
我想问一个关于nodeJS中的请求承诺的问题。
我是nodeJS的新手,到目前为止,我已经生成了以下代码:
const rp = require('request-promise');
rp('')
.then((htmlstring) => {
console.log(htmlstring);
});
这一切正常。
当我添加如下所示的捕获循环时:
const rp = require('request-promise');
rp('')
.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/users/1')
.then((htmlstring) => {
console.log(htmlstring);
}).catch((err) => {
console.log('Error', err);
};