typescript - 你如何返回一个输入的 Promise
问题描述
下面的代码有效,但它承诺返回任何东西。我如何将其更改为承诺返回特定类型的 Promise 或 Promise 的联合?buildError 返回也输入为 Response 的内容。
public async getSomething(userId: string): Promise<any> {
return new Promise((resolve: any, reject: any) =>
{
this.axios().get(baseUrl + path, config)
.then((response: any) => {
if (response && response.data && response.status === 200) {
resolve(response.data);
} else {
reject(this.buildError(response.status || 500, userId));
}
})
.catch((response: any) => {
logger.error(response);
const status = response.response ? response.response.status : 500;
reject(this.buildError(status, userId));
}
}
如果我键入 Promise,intelliJ 会抱怨类型“{}”不可分配给类型“响应”,类型“{}”中缺少属性“foo”。我试图将所有解决和拒绝都输入为响应。我假设 '{}' 指的是 => {...},但不清楚如何输入。
解决方案
最终做了这样的事情
public async getSomething(userId: string): Promise<Response> {
return new Promise<Response>((resolve: any, reject: any) =>
{
this.axios().get(baseUrl + path, config)
.then((response: any) => {
if (response && response.data && response.status === 200) {
resolve(response.data);
} else {
reject(this.buildError(response.status || 500, userId));
}
})
.catch((response: any) => {
logger.error(response);
const status = response.response ? response.response.status : 500;
reject(this.buildError(status, userId));
}
}
推荐阅读
- h2o - 为什么 ModelDescriptor 和 ModelDescriptorBuilder 不可序列化?
- javascript - JS倒数计时器中多次调用的问题
- json - 如何在 swift 中根据段在 tableview 中显示 JSON 响应
- c++ - GL_POLYGONS 不工作我如何让我的功能工作
- postman - 纽曼库 - 将每次迭代的响应数据值返回到 csv
- python - VS 代码随机决定向下滚动
- angular - “字符串”类型不存在属性“错误”
- keycloak - 在 keycloak 中添加自定义键
- search - 元描述在 Google 中是正确的,但在 Bing 和 DuckDuckgo 中,它显示特殊字符
- python - 没有使用python在输出中绘制图表