gpt4 book ai didi

javascript - 返回一个返回 promise 的 promise ?

转载 作者:行者123 更新时间:2023-11-28 19:01:58 26 4
gpt4 key购买 nike

我有点困惑如何做到这一点。这是我所拥有的:

resolve: {
objectiveDetailsExam: ['objectiveDetailService', 'subjectService',
function (objectiveDetailService: IObjectiveDetailService, subjectService: ISubjectService) {
objectiveDetailService.getObjectiveDetailsExam("/" + subjectService.subject.id)
.then((results): ng.IPromise<any> => {
return objectiveDetailService.getObjectiveDetailsObjective("/" + objectiveDetailService.examId);
});
}]
}

或者应该是在objectiveDetailService.getObjectiveDetailsExam之前有一个return:

resolve: {
objectiveDetailsExam: ['objectiveDetailService', 'subjectService',
function (objectiveDetailService: IObjectiveDetailService, subjectService: ISubjectService) {
return objectiveDetailService.getObjectiveDetailsExam("/" + subjectService.subject.id)
.then((results): ng.IPromise<any> => {
return objectiveDetailService.getObjectiveDetailsObjective("/" + objectiveDetailService.examId);
});
}]
}

实际上似乎可以工作,并且由于调用执行得很快,我看不出哪个是正确的。

有人可以建议我在解析中是否需要一两个返回值,该返回值应该返回 true 或 false?

最佳答案

在第一个 Promise 的“body”中返回第二个 Promise(或在传递给 then 的函数中)会将第一个 Promise 与第二个 Promise 进行管道传输。两者结合所产生的 Promise 的结果将是后一个的结果。

我很可能更喜欢后面的例子。在第一个示例中,您仅返回 undefined 这意味着无法从外部知道您的 Promise 何时真正得到解决。

如果返回它,您可以将其取回并将其通过管道传递给某些代码,仅在完成(或失败)时才执行。这就是 promise 的全部意义。

但是,老实说,很难弄清楚您的代码实际上在做什么,因此在这种特殊情况下返回某些内容实际上可能毫无用处。以防万一,如果两者都有效,我仍然会返回。即使您无法直接访问返回的 Promise,它仍然可以在幕后使用。在这种情况下,最好是检查您的框架/库如何使用该值。

如果您有兴趣了解更多有关 Promise 以及如何正确使用它们的信息,here is a good article .

关于javascript - 返回一个返回 promise 的 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32348155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com