我正在使用localforage并有一个 angularjs 包装器来获取项目并给出一个承诺对象
工厂.js
service.prototype.getItem = function getItem(key) {
var deferred = $q.defer();
localforage.getItem(key).then(function (item) {
//some calculations
deferred.resolve(item);
}
return deferred.promise;
}
工厂.spec.js
it('should get item', function (done) {
mocks.inject(function ($rootScope, $httpBackend, service) {
service.getItem('test').then(function(item) {
expect(item).toBe('some value');
done();
});
$rootScope.$digest();
});
}
在上面的代码中,服务回调被正确触发并获取值。但无法在 spec.js 中触发回调