我有3个来自Node.js的Web服务调用。 2是ReST,1是SOAP。所有都包含在Promises中。
我已经获得了正确返回promise的ReST请求,这些请求可以在Promise.all块中访问,但是当我添加SOAP请求时,我收到一条消息,指出Promise未定义。
我使用的是节点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
答案 0 :(得分:3)
删除Promise
行。您不应该从new Promise
执行者(您提供的回复promise
)中返回任何内容,并且它不会创建promise
变量。因此ReferenceError
是此时未定义的标识符,因此是@slackbot.command('hi')
def idk():
user = slackbot.slack_client.api_call(
"users.info",
user=command.user,
)
print(user)
。