我从这样的函数返回一个 promise :

resultPromise = dgps.utils.save(opportunity, '/api/Opportunity/Save', opportunity.dirtyFlag).then(function () {

                self.checklist.saveChecklist(opportunity).then(function () {

                    self.competitor.save(opportunity.selectedCompetitor()).then(function ... etc.
return resultPromise;

假设上述函数称为保存。

在调用函数中,我要等待整个链完成,然后再执行某些操作。我在那里的代码如下所示:
var savePromise = self.save();
savePromise.then(function() {
    console.log('aftersave');
});

结果是,“ promise ”链仍在运行时,“后保存”被发送到控制台。

整个链完成后,我该怎么办?

最佳答案

与其嵌套 promise ,不如将它们链接起来。

resultPromise = dgps.utils.save(opportunity, '/api/Opportunity/Save', opportunity.dirtyFlag).then(function () {

                    return self.checklist.saveChecklist(opportunity);
                }).then(function () {

                    return self.competitor.save(opportunity.selectedCompetitor());
                }).then(function () {
                    // etc
                });

// return a promise which completes when the entire chain completes
return resultPromise;

关于javascript - 等到promise和嵌套然后完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14173228/

10-11 12:58