为什么 Q 的 thenResolve 方法返回未定义?



为什么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

你传递给.thenResolveundefined(调用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()

相关内容

  • 没有找到相关文章

最新更新