gpt4 book ai didi

javascript - 错误 - 返回类型不一致(使用闭包编译器 Promise)

转载 作者:行者123 更新时间:2023-11-29 21:06:41 26 4
gpt4 key购买 nike

我正在尝试编写一个调用 API 并返回 Promise 的函数。这是我的函数定义:

  /**
* Gets the IAM policy for a service account. Wraps getIamPolicy endpoint:
* https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts/getIamPolicy
* @param {!Project} project
* @param {string} email - Unique email for a service account.
* @return {!angular.$q.Promise<!Object<!string, !Policy>>}
*/
getIamPolicy(project, email) {
const path = constructPath_(project, email) + ':getIamPolicy';
return this.apiClient_.request({method: 'POST', path}, this.config_)
.then(response => { debugger; });
}

我正在使用闭包编译器,它会抛出一个编译错误:

service-account-service.js:124: ERROR - inconsistent return type
found : angular.$q.Promise<undefined>
required: angular.$q.Promise<Object<string,Policy>>
return this.apiClient_.request({method: 'POST', path}, this.config_)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

我做错了什么?我应该如何返回 promise ?

我之前使用 apiClient_.request 辅助函数编写的函数运行良好。我应该从 this.apiClient_.request 返回相同的值。

Policy 和 Project 在 externs 文件中定义(我相信是正确的)。我也在使用 Angular 1.4

最佳答案

Promise<undefined>错误说你要返回是正确的。而 this.apiClient_.request辅助函数正在返回一个 Promise,Promise 的返回类型(<undefined> 位)正在被 .then(response => { debugger; }) 覆盖代码。即,该代码没有返回语句,因此它返回 undefined !

所以当我将代码更改为:

return this.apiClient_.request({method: 'POST', path}, this.config_)
.then(response => {
debugger;
return response;
});

关于javascript - 错误 - 返回类型不一致(使用闭包编译器 Promise),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43727850/

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