我正在使用promise for async requests,我想知道什么是拒绝与无效参数相关的错误的最佳方法(也就是可以立即检测到的错误)。我目前只是抛出一个错误,就像我通常在同步函数中做的那样,但是想知道这是不好的做法,我应该使用promise的reject方法吗?
function doSomething(time) {
//option 1
if (typeof time !== 'number' || time <= 0) throw new Error('invalid argument');
var deferred = Q.defer();
setTimeout(function() {
deferred.resolve('yay');
}, time);
return deferred.promise;
};
doSomething('kappa').then(function(data) {
console.log(data);
});
function doSomething2(time) {
var deferred = Q.defer();
//option 2
if (typeof time !== 'number' || time <= 0) {
deferred.reject(new Error('invalid argument'));
} else {
setTimeout(function() {
deferred.resolve('yay');
}, time);
}
return deferred.promise;
};
doSomething2('kappa').then(function(data) {
console.log(data);
}, function(err) {
console.log(err);
});