我有一个调用承诺函数的方法。然而,在我调用此方法之前,我需要执行一些验证。
var outerMethod = function(params) {
if(!params) throw new Error();
return somePromiseFunction();
}
抛出第一个错误的正确方法是什么。我已经尝试将整个outerMethod内部内容包装在new Promise(function(resolve, reject) { });
中,但这并没有完全解决问题;
答案 0 :(得分:2)
你可以回答一个被拒绝的承诺,如下:
var outerMethod = function(params) {
return (!params)? q.defer().reject(new Error('missing params')) : somePromiseFunction();
}
风格方面,我会改变条件(params)? /* happy case */ : /* sad case */;
,但由于我们在谈论拒绝,所以我将其置于否定状态。