我是Typescript的新手,正在开发我的第一个基于Electron的应用程序。第一部分是使用json网络服务的结果填充本地数据库的类。
我的获取数据的类如下,是扩展类。在getAll中,如果我在JSON.parse之后退出主体,我可以在控制台中看到我的结果而不会出现问题。
import * as typedHttpClient from "typed-rest-client/HttpClient";
abstract class Client<Id, Item> {
private url: string;
constructor(url: string) {
this.url = url;
}
public async getAll() {
const httpc: typedHttpClient.HttpClient = new typedHttpClient.HttpClient("pip-dev");
let body = await (await httpc.get(this.url)).readBody();
body = JSON.parse(body);
return body;
}
}
export default Client;
import { BASE_URI } from "../config";
import Client from "./client";
const URI = `${BASE_URI}/v2/achievements/daily`;
export interface IAchievementDaily {
id: number;
level: ILevel;
required_access: string[];
}
export interface ILevel {
min: number;
max: number;
}
export class AchievementsDailyClient extends Client<number, IAchievementDaily> {
constructor() {
super(URI);
}
}
export default new AchievementsDailyClient();
但是,当我使用以下代码从数据库类中调用此代码时,我只能设法获得Promise:String或Object:Object输出。
public getAchievementsDaily() {
const response = api.achievementsDaily.getAll();
response.then((result) => this.logInformation(result));
}
private logInformation(inf: any) {
if (inf) {
// tslint:disable-next-line:no-console
console.dir("Information : " + inf, { depth: null, colors: true });
}
}
据我所知,response.then命令仅应在我的getAll返回正文之后才调用。我检查了多个教程,这是我所能获得的。
我显然错过了一些东西,因为这不应该那么难。我需要做些什么来以不同的方式解析结果吗?
答案 0 :(得分:1)
在这一行:
console.dir("Information : " + inf, { depth: null, colors: true });
字符串串联调用inf.toString()
,将inf
转换为无用的[object Object]
字符串,甚至还没有到达console.dir
。试试这个,您可能会看到您的数据:
console.dir("Information : ", inf, { depth: null, colors: true });