我已经编写了以下代码,但它将拒绝而不是解决回调。
(function() {
var restante = 0;
'use strict';
function wait() {
return new Promise(function(done, reject) {
setTimeout(function() {
if (restante = 0) {
done();
} else {
reject();
}
}, 2000);
});
}
wait().
then(function() {
console.log("First Resolution");
}).catch(function() {
console.log("Error occured");
});
})();
为什么每次都拒绝?
答案 0 :(得分:5)
答案 1 :(得分:2)
在if
声明中应该是:
if (restante == 0) {
done();
}
或 (更好的做法)
if (restante === 0) {
done();
}
您的完整代码如下所示:
(function() {
var restante = 0;
'use strict';
function wait() {
return new Promise(function(done, reject) {
setTimeout(function() {
if (restante == 0) {
done();
} else {
reject();
}
}, 2000);
});
}
wait().
then(function() {
console.log("First Resolution");
}).catch(function() {
console.log("Error occured");
});
})();
条件语句需要==
(或===
),而分配语句包含单个=
。