为什么thenResolve
没有像我预期的那样工作?
我在javascript模块中有一个方法:
function addVisit(companyId) {
var newVisit;
return getInventoryItems()
.then(function(data) {
newVisit = createVisit(companyId, data);
})
.then(function() {
breezeVisitsManager.saveChanges();
})
.thenResolve(newVisit);
}
由另一个模块调用:
visitRepository.addVisit(self.companyId)
.then(function(newVisit) {
var route = self.visitRoute(newVisit.VisitId());
router.navigate(route);
}
newVisit 在调用 Resolve 时存在,但在调用代码收到它时它是未定义的。我已经尝试了示例 JSFiddle,我不明白为什么我的代码不起作用。
newVisit
在你传递给.thenResolve
时undefined
(调用addVisit时立即
function addVisit(companyId) {
var newVisit;
return getInventoryItems()
.then(function(data) {
newVisit = createVisit(companyId, data);
})
.then(function() {
breezeVisitsManager.saveChanges();
})
.then(function(){
return newVisit;
});
}
承诺不会改变语言,无论如何,a.b.c()
仍然会立即打电话给c()
。