Javascript promise返回意外的令牌错误

时间:2017-03-29 05:56:50

标签: javascript node.js request promise

您正在尝试在nodeJS中使用带有promise的请求模块。

这是我的剧本

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);

但是我收到了以下错误。

/home/xyz/reques.js:14
  return  new Promise((resolve, reject) {
                                        ^
SyntaxError: Unexpected token {
    at Module._compile (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

我真的不知道这个剧本中的错误,任何人都可以帮助我。

2 个答案:

答案 0 :(得分:5)

在这一行上,您需要确保定义一个函数。您可以使用箭头函数执行此操作:

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

箭头函数的语法为(param1, param2) => {function body},与function(param1, param2) {function body}相同。您可以阅读有关他们的更多信息here

答案 1 :(得分:2)

您正在尝试使用不带箭头的箭头功能。

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);