Javascript承诺在控制台中抛出未捕获(在承诺中)-1
我使用Jasmine 2.3.4为native Promise编写了一个测试用例。 我所有的测试都通过了,但如果我看一下浏览器控制台,我会看到“Uncaught(in promise)-1”。下面的链接包含我的测试代码,如果您查看控制台,您将看到错误 如何修复此错误。Javascript承诺在控制台中抛出未捕获(在承诺中)-1,javascript,jasmine,promise,Javascript,Jasmine,Promise,我使用Jasmine 2.3.4为native Promise编写了一个测试用例。 我所有的测试都通过了,但如果我看一下浏览器控制台,我会看到“Uncaught(in promise)-1”。下面的链接包含我的测试代码,如果您查看控制台,您将看到错误 如何修复此错误。 谢谢。在您的前两个测试中,创建并拒绝了一个promiseReject,但是没有人发现错误。这就是所谓的“未经处理的拒绝”。这不是一个错误,而是一个警告-忽略它,或者抓住它。@Surya你可以测试Bergi的建议,将第一个It放入
谢谢。在您的前两个测试中,创建并拒绝了一个
promiseReject
,但是没有人发现错误。这就是所谓的“未经处理的拒绝”。这不是一个错误,而是一个警告-忽略它,或者抓住它。@Surya你可以测试Bergi的建议,将第一个It
放入xit
中,这样它就被排除了,看看你是否仍然得到了答案warning@Bergi对不起,我不明白?您的意思是将我的拒绝承诺包含在try-catch中吗?不,只需像在您的第三个测试用例中一样在其上放置一个.catch(…)
。@JuanMendes添加xit时,我仍然会收到错误。我的第三个测试用例也显示了未捕获(在promise中)。我在控制台中总共看到两个错误
describe("Promise working", function() {
var promiseResolve = null,
promiseReject = null;
beforeEach(function(done) {
promiseResolve = new Promise(function(resolve,reject){
resolve(1);
});
promiseReject = new Promise(function(resolve,reject){
reject(-1); //causing error in console????Uncaught (in promise) -1
});
done();
});
it("Promise is defined", function(done) {
//console.log('Promise',promiseResolve,promiseReject);
expect(promiseResolve).toBeDefined();
expect(promiseReject).toBeDefined();
done();
});
it("Promise is resolving properly", function(done) {
promiseResolve.then(function(val){//success
expect(val).toEqual(1);
done();
}).catch(function(val){
fail('Promise resolving should not run');
done();
});
});
it("Promise is rejecting properly", function(done) {
promiseReject.then(function(val){
fail('Promise rejecting should not run');
}).catch(function(val){
expect(val).toEqual(-1);
done();
});
});
});