未处理的拒绝原因(应为空)
Unhandled rejection reasons (should be empty)
我正在使用Q进入promise模式,并且在控制台中不断收到警告"[Q]未处理的拒绝原因(应为空)"。我做错了什么?
http://jsfiddle.net/FpyDr/1/
function load(url) {
var deferred = Q.defer();
$.ajax({
type: "GET",
processData: false,
dataType: "html",
url: url,
cache: false
}).done(function (response, status, xhr) {
deferred.reject(new Error("test error"));
return;
}).fail(function (xhr, status, error) {
deferred.reject(new Error("ajax failed"));
return;
});
return deferred.promise;
}
load("http://fiddle.jshell.net")
.then(function (result) {
console.log("got result", typeof(result));
})
.catch(function (error) {
console.log("got error", error);
return true;
})
.done();
基于这个令人困惑的讨论,这是一个错误的肯定。
要使日志记录静音,您可以这样做:
Q.stopUnhandledRejectionTracking();
如果你没有捕捉到拒绝,它会抛出错误,所以在添加上面的代码后,你仍然会在控制台中看到它。JSFiddle:http://jsfiddle.net/homeyer/FpyDr/22/
相关文章:
- 未处理的拒绝MongoError:无法连接到MongoDB中的服务器
- NodeJS未处理的拒绝错误:Can't在发送标头后设置标头
- 防止承诺触发全局“未处理的拒绝”事件
- 节点和续集的新手,并获得“未处理的拒绝类型错误:Vacation.create 不是一个函数”
- 角度 2 beta 即 10 “潜在未处理的拒绝 [3] 语法错误:预期”
- 承诺拒绝错误 - 未处理的拒绝错误:已关闭
- 未处理的拒绝原因(应为空)
- 异步承诺中未处理的承诺拒绝
- 可能的未处理承诺拒绝(id:0): undefined不是一个对象
- 未处理的拒绝错误:发送后不能设置标头
- Chrome 53不捕捉未处理的拒绝承诺
- 未处理的承诺拒绝:不能调用方法'push'零
- Angular 2 - zone.js:355未处理承诺拒绝:模板解析错误:'不是已知元素:
- 为什么这是未处理的承诺拒绝
- 简单的Angular 2应用程序给出了“可能未处理的拒绝”.错误
- 未处理的承诺拒绝:ReferenceError: _body没有定义
- 可能未处理的承诺拒绝- React-Native与Firebase
- 未处理的承诺拒绝:模板解析错误
- 未处理的拒绝错误与Ajax蓝鸟承诺包装
- React Native错误:可能未处理的承诺拒绝-无法读取属性数据