gpt4 book ai didi

javascript - 类型 Promise 不可分配给类型 Promise

转载 作者:行者123 更新时间:2023-12-04 01:01:52 25 4
gpt4 key购买 nike

我是 angularJs2 的新手。我创建了以下服务:

import { Injectable, OnInit } from '@angular/core';
import { customType } from '../models/currentJobs';
import { Headers, Http } from '@angular/http';

import 'rxjs/add/operator/toPromise';

@Injectable()
export class JobService implements OnInit {

constructor(private http: Http) { }

ngOnInit(): void {
this.getCurrentJobs();
}

private headers: Headers = new Headers({ 'Content-Type': 'application/json' });
private ordersUrl: string = 'http://localhost:35032/api/order/';

public orders: customType[];

getCurrentJobs(): Promise<customType[]> {
var jobs = this.http.get(this.ordersUrl)
.toPromise()
.then(response => {
this.orders = response.json() as customType[];
})
.catch(this.handleError);
return jobs;//this line throws error
}

private handleError(error: any): Promise<any> {
console.error('An error occurred', error);
return Promise.reject(error.message || error);
}
}

以下是我的 Vs2017 的 Typescript 编译配置

enter image description here

当我使用 Visual Studio 2017 编译代码时,出现以下错误
**TS2322 Build:Type 'Promise<void>' is not assignable to type 'Promise<customType[]>'.* *

帮我解决这个错误。

最佳答案

您没有返回您的 then 中的任何内容这使得 jobs属于 Promise<void> 类型.返回 then 内的数组:

getCurrentJobs(): Promise<customType[]> {
var jobs = this.http.get(this.ordersUrl)
.toPromise()
.then(response => {
this.orders = response.json() as customType[];
return this.orders;
})
.catch(this.handleError);
return jobs;
}

查看 Promise 的链接行为: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then#Chaining

关于javascript - 类型 Promise<void> 不可分配给类型 Promise<customType[]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43860791/

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