为什么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当时存在thenResolve被调用,但是当调用代码接收它时它是未定义的。我玩过sample JSFiddle并且我不明白为什么我的代码无效。
答案 0 :(得分:4)
newVisit
传递给undefined
时(在调用addVisit时立即),{p> .thenResolve
为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()
无论如何都会立即调用{{1}}。