【发布时间】:2015-05-04 08:47:12
【问题描述】:
所以我正在创建一个向后端发送消息以检查特定电子邮件地址是否已在数据库中的服务。
userDB.emailExists = function()
{
var returnVal;
$http.get('?backend=users&email=myemail%40mydomain.com')
.success(function(data) { returnVal = data.count ? true : false; })
.error(function(data) { /* TODO error handling */ });
returnVal = data.count ? true : false;
});
return returnVal;
};
目前对此的单元测试(测试函数是否返回true 或false)以Expected undefined to be truthy. 失败。我想我明白为什么了;作为一个承诺只返回一个“占位符”,所以在我们到达“返回”语句时,returnVal 尚未设置。
唯一的问题是,我不知道如何解决这个问题;我不想返回承诺,因为当结果是简单的真或假时,这似乎是不必要的复杂层
【问题讨论】:
-
您可以这样做,因为您正在进行异步调用.... 看看如何处理它 - stackoverflow.com/questions/14220321/…
标签: javascript angularjs promise