承诺不是构造函数

时间:2015-05-04 14:46:06

标签: javascript promise

我正在尝试使用promise而是出现类型错误:Promise不是构造函数。

这是承诺:

        var Promise = new Promise(
            function (resolve,error) {
                for (var key in excludeValues) {
                   /* some ifs */
                    minVal = someValue 
                    ........
                    ........
                    }


                resolve(errors)
            });
            Promise.then(
            function(data){
                if (minVal > maxVal)
                {
                    errors.minMax.push(
                        'minMax'
                    )
                }

                if (gapVal > minVal * -1)
                {
                    errors.minMax.push(
                        'gapVal'
                    )
                }
                return (errors.minMax.length == 0 && errors.zahl.length == 0 && errors.hoch.length == 0 && errors.niedrig.length == 0)
            }
        );

有人能告诉我我做错了吗?

3 个答案:

答案 0 :(得分:6)

使用string uploadedFileMediaType = httpContent.Headers.ContentType.MediaType; 声明范围内的局部变量。它是使用var Promiseshadows全局undefined构造函数初始化的。使用其他变量名称

Promise

或根本没有

var promise = new Promise(…);
promise.then(…);

答案 1 :(得分:0)

问题是你是否覆盖了Promise函数,所以当你第二次执行代码时“Promise”不再是函数了。

所以更改变量名称如下所示

var promisevariable = new Promise(
        function (resolve,error) {
            for (var key in excludeValues) {
               /* some ifs */
                minVal = someValue 
                ........
                ........
                }


            resolve(errors)
        });

答案 2 :(得分:0)

我有一个非常相似的问题,给出了几乎相同的错误消息。我宣布:

var promise = new promise (...)而不是new Promise(...)

该错误将给出非常相似的错误消息,如下所示:

promise is not a constructor(请注意小写 promise)。

在这种情况下,错误是因为您引用的是声明的变量(promise,而不是调用Promise构造函数。