错误:" ReferenceError:未定义承诺"为我的代码添加承诺

时间:2017-08-03 11:45:13

标签: javascript node.js soap

我有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

1 个答案:

答案 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)