【问题标题】:Error: "ReferenceError: promise is not defined" adding promise to my code错误:“ReferenceError:未定义承诺”向我的代码添加承诺
【发布时间】:2017-08-03 11:45:13
【问题描述】:

我有 3 个来自 Node.js 的 Web 服务调用。 2 是 ReST,1 是 SOAP。全部都封装在 Promises 中。

我已经收到我的 ReST 请求以正确返回 Promise,并且可以在 Promise.all 块中访问这些请求,但是当我添加我的 SOAP 请求时,我收到一条消息说 Promise 未定义。

我正在使用节点 v8.2.1。我试过 request 和 request-promise 但同样的事情发生了。我的代码看起来像这样 - 我显然做错了什么?

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: 未定义承诺

【问题讨论】:

    标签: javascript node.js soap


    【解决方案1】:

    删除return promise; 行。您不会从Promise 执行程序(您给new Promise 的回调)中返回任何内容,并且它不会创建promise 变量。所以promise 在那个时候是一个未定义的标识符,因此ReferenceError

    【讨论】:

      猜你喜欢
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 2014-06-05
      • 2020-02-29
      • 1970-01-01
      • 2021-11-08
      相关资源
      最近更新 更多