Javascript 承诺不是构造器
我试图使用一个promise,但得到一个类型错误:promise不是构造函数 承诺如下:Javascript 承诺不是构造器,javascript,promise,Javascript,Promise,我试图使用一个promise,但得到一个类型错误:promise不是构造函数 承诺如下: var Promise = new Promise( function (resolve,error) { for (var key in excludeValues) { /* some ifs */ minVal = someValue
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)
}
);
有人能告诉我我做错了什么吗?问题是您正在覆盖Promise函数,所以当您第二次执行代码时,“Promise”不再是函数 因此,如下图所示更改变量名
var promisevariable = new Promise(
function (resolve,error) {
for (var key in excludeValues) {
/* some ifs */
minVal = someValue
........
........
}
resolve(errors)
});
使用
var Promise
可以在范围中声明一个局部变量。它是用未定义
和全局承诺
构造函数初始化的。使用不同的变量名
var promise = new Promise(…);
promise.then(…);
或者根本没有
new Promise(…).then(…);
我有一个非常类似的问题,它给出了几乎相同的错误消息。我宣布:
var promise=newpromise(…)
而不是newpromise(…)
该错误将给出非常类似的错误消息,如下所示:
promise不是构造函数(注意小写的promise
)
在本例中,错误是因为您正在引用已声明的变量(promise
),而不是调用promise
构造函数。尝试将同一事物命名为另一事物似乎是个坏主意。