2017-08-03 42 views
0

我有3个Web服务调用正在从Node.js的制作2是ReST,1是SOAP。所有包裹在承诺。错误:“的ReferenceError:承诺没有定义”,并称承诺,我的代码

我已经得到了我的休息请求返回正确的承诺,这些都是在Promise.all块访问的,但是当我加我的SOAP请求,我得到一个消息,说是没有定义的承诺。

我使用节点v8.2.1。我已经尝试了请求和请求承诺,但同样的事情发生。我的代码看起来像这样 - 我显然做错了什么?

const locationRequest = require('request'); 
var soapPromise = new Promise(function(resolve, reject) { 
    locationRequest(options1, function(error, response, output) { 
     if (error) { 
      console.info("soap error: " + error); 
      reject(error); 
     } 
     else { 
      console.info("soap success: " + response); 
      resolve(response); 
     } 
    }); 
    return promise; 
}); 

Promise.all([restPromise, photoPromise, soapPromise]) //addition of soapPromise causes the issue 
    .then(function([restResult, photoResult, soapResult]) { 
     //respond to client 
     console.info("Resource: " + restResult.name); 
     console.info("Photo Path: " + photoResult); 
     console.info("Soap: " + soapResult); 
    }) 
    .catch(function(error) { 
     console.info("promise all error: " + error); 
     res.send('done'); 
     //catch an error generated from either request 
    }) 

添加soapPromise东西给我:

ReferenceError: promise is not defined

回答

1

取出return promise;线。你不返回任何不Promise执行(你给new Promise回调),并且它不会创建一个promise变量。所以promise是在该点一个未定义的标识符,因此ReferenceError