Javascript承诺返回意外的令牌错误

Javascript承诺返回意外的令牌错误,javascript,node.js,request,promise,Javascript,Node.js,Request,Promise,您好,我正在尝试在nodeJS中使用带有承诺的请求模块 这是我的剧本 require('promise'); var request = require('request'); const requestget = function (url) { return new Promise((resolve, reject) { request(url, function (error, response, body) { if (!error &

您好,我正在尝试在nodeJS中使用带有承诺的请求模块

这是我的剧本

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

我真的不知道这个脚本出了什么问题,任何人都可以帮我解决。

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

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

箭头函数的语法是
(param1,param2)=>{function body}
,这与说
函数(param1,param2){function body}
是一样的。您可以阅读更多关于它们的信息。

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

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

箭头函数的语法是
(param1,param2)=>{function body}
,这与说
函数(param1,param2){function body}
是一样的。您可以阅读更多有关它们的信息。

您正在尝试使用不带箭头的箭头函数

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

您正在尝试使用不带箭头的箭头函数

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

函数(解析,拒绝){
(解析,拒绝)=>{
之间进行选择。这对我很有效。谢谢。我使用的是Node的早期版本。箭头函数在版本~8中着陆。在
函数(解析,拒绝){
(解析,拒绝)=>{
这对我很有效。谢谢。我使用的是Node的早期版本。Arrow函数登录到版本~8。Hi尝试了相同的操作,但出现了类似的错误。“/home/xyz/reques.js:5 return new Promission((resolve,reject)=>{^SyntaxError:Unexpected token>”尝试使用
return new Promission(函数(resolve,reject){
。如果您想要最新的功能,如箭头函数,您也可以使用
node--harmony运行node,因为它们现在是推荐的方法(保留范围),感谢它的工作原理类似于charm
return new Promise(函数(resolve,reject)
我仍然不知道为什么
=>
函数不起作用您使用的是旧版本的node。如果您使用
节点--harmony运行它,您可以使它起作用。我尝试了相同的操作,但遇到了这样的错误。“/home/xyz/reques.js:5返回新承诺((解决,拒绝)=>{^SyntaxError:Unexpected token>'尝试使用
返回新承诺(函数(解析,拒绝){
。如果您想要最新的功能,如箭头函数,您也可以使用
节点--harmony运行节点,因为它们现在是推荐的方法(以保留作用域)谢谢,它的工作原理类似于charm
return new Promise(函数(解析、拒绝)
我仍然不知道为什么
=>
函数不工作您使用的是旧版本的node。如果您使用
节点--harmony
运行它,它就可以工作。仍然会出现以下错误:
/home/xyz/reques.js:5 return new Promise((解析,拒绝)=>{^SyntaxError:Unexpected token>at Module.\u编译(Module.js:439:25)at Object.Module.\u扩展..js(Module.js:474:10)at Module.load(Module.js:356:32)at Function.Module.\u启动时加载(Module.js:312:12)at Function.runMain(Module.js:497:10)(node.js:119:16)在node.js:906:3
您可能有一个旧版本的node,升级到node v6之后,您将获得完全支持。如果这不是一个选项,只需使用新承诺(函数(解析,拒绝){//code here});仍然会收到以下错误:
/home/xyz/reques.js:5返回新承诺((解析,拒绝)=>{^SyntaxError:Unexpected token>at Module.\u compile(Module.js:439:25)at Object.Module.\u extensions..js(Module.js:474:10)at Module.load(Module.js:356:32)at Function.Module.\u load(Module.js:312:12)at Function.Module.runMain(Module.js:497:10)at Function.js:119:16)在node.js:906:3
中,您可能有一个旧版本的node,升级到node v6之后的任何版本,您将获得完全支持。如果这不是一个选项,只需使用新承诺(函数(解析,拒绝){//code here});