And*_*erj 4 promise sinon angularjs karma-jasmine
我试图使用sinon,jasmine和$ q来存根方法.我希望该方法返回我的假数据.
问题是定义的then语句永远不会被调用,我无法弄清楚原因.这已经是一个简化版本,但它仍然无法正常工作:
Steven Stub is called调用控制台日志then回调被调用这是我的代码
var p = {steven: function() {console.log('original steven');}},
pStub = sinon.stub(p, 'steven', function(){
console.log('Steven Stub is called');
var defer = $q.defer();
defer.resolve({item: 5});
return defer.promise;
});
var promise = p.steven();
promise.then(
function(data){console.log('Peter?');},
function(data) {console.log('ERROR?');},
function(data) {console.log('progress?');});
Run Code Online (Sandbox Code Playgroud)
任何的想法?
您需要调用摘要才能解决承诺.在Angular 2.0中,这将是固定的(和Angular 1.2在这里比Angular 1.1略好)但同时你必须打电话
$rootScope.$digest()
Run Code Online (Sandbox Code Playgroud)
为了使承诺得到解决.这是因为promises通过evalAsync工作.请参阅此问题以了解有关摘要周期如何与$ q promises生命周期交互的更多信息.
| 归档时间: |
|
| 查看次数: |
2076 次 |
| 最近记录: |