最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

node.js - Javascript promise returns unexpected token error - Stack Overflow

programmeradmin0浏览0评论

Hi am trying to use request module with promise in nodeJS.

Here is my Script

require('promise');
var request = require('request');           
const requestget = function (url) {
  return  new Promise((resolve, reject) {
    request(url, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            resolve(body);

         } else {
            reject(error);
         }
       });
  });
}
requestget('').then(console.log);

but am getting the following error.

/home/xyz/reques.js:14
  return  new Promise((resolve, reject) {
                                        ^
SyntaxError: Unexpected token {
    at Module._pile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

I really don't know what's wrong in this script any one can help me out.

Hi am trying to use request module with promise in nodeJS.

Here is my Script

require('promise');
var request = require('request');           
const requestget = function (url) {
  return  new Promise((resolve, reject) {
    request(url, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            resolve(body);

         } else {
            reject(error);
         }
       });
  });
}
requestget('http://www.modulus.io').then(console.log);

but am getting the following error.

/home/xyz/reques.js:14
  return  new Promise((resolve, reject) {
                                        ^
SyntaxError: Unexpected token {
    at Module._pile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

I really don't know what's wrong in this script any one can help me out.

Share Improve this question edited Apr 17, 2018 at 1:17 Cœur 38.8k26 gold badges205 silver badges277 bronze badges asked Mar 29, 2017 at 5:56 sakthivelsakthivel 712 silver badges10 bronze badges 2
  • 2 choose between function (resolve, reject) { or (resolve, reject) => { – Jaromanda X Commented Mar 29, 2017 at 6:01
  • This worked for me. Thanks. I was using a very early version of Node. Arrow functions landed in version ~8. – PiggyMacPigPig Commented Mar 27, 2018 at 16:00
Add a ment  | 

2 Answers 2

Reset to default 5

On this line, you need to make sure you are defining a function. You can do this using arrow functions like so:

return new Promise((resolve, reject) => {

Arrow functions have the syntax (param1, param2) => {function body}, which is the same thing as saying function(param1, param2) {function body}. You can read more about them here.

You are trying to use arrow functions without arrows.

require('promise');
var request = require('request');           
const requestget = function (url) {
  //Add the arrow on the below line
  return  new Promise((resolve, reject) => {
    request(url, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            resolve(body);

         } else {
            reject(error);
         }
       });
  });
}
requestget('http://www.modulus.io').then(console.log);
发布评论

评论列表(0)

  1. 暂无评论