错误:"ReferenceError: promise is not defined"向我的代码添加承诺



我从 Node.js 进行了 3 次 Web 服务调用。 2 个是 ReST,1 个是 SOAP。 所有这些都被包裹在承诺中。

我已经收到了我的 ReST 请求以正确返回承诺,这些请求可以在 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的东西给了我:

引用错误:未定义承诺

删除return promise;行。您不需要从Promise执行器(您new Promise提供的回调(返回任何内容,并且它不会创建promise变量。因此,promise此时是一个未定义的标识符,因此ReferenceError.

最新更新