给出以下内容......
api.checkIn = function (theUserID) {
var uri;
uri = 'some/uri/here/' + theUserID;
return req.get(uri, {
handleAs: 'json'
});
};
api.checkIn(userID).then(function (res) {
_displayMessage("Attendance Saved.");
},
function(error){
console.log("An error occurred: " + error);
});
我希望测试“theUserID”,如果有问题完全绕过远程请求,并让返回的promise对象触发它的错误方法。
我还希望通过返回一个promise对象,但是自动调用“success / result”函数传递它JSON,而不实际进行远程调用,来存储远程请求以进行测试。
答案 0 :(得分:1)
假设你的代码使用的是AMD,dojo 1.7或1.8。这应该可以解决问题:
api.checkIn = function (theUserID) {
var promise = new Deferred(); // you'll want to require dojo/Deferred
if(notValid(theUserID)){ // you'll need to implement your own validity test here
promise.reject("your error of choice here");
} else {
promise.resolve("your response of choice here");
}
return promise;
};
您可能还想查看dojo/Deferred上的文档。