TypeScript从API提取数据

时间:2019-03-19 12:26:34

标签: json typescript api

我希望下面的代码能够从我设置的简单API中获取JSON数据。

export class FaqFakeDb
{ 
    public static data = fetch('https://#######.co.uk/api/faq/');
}

这是一个FAQ页面,用于从API中提取数据。我是Typescript和Angular的新手,所以如果我犯了一个简单的错误,请原谅我。

我希望它具有以下功能:

export class FaqFakeDb
{
    public static data = [  
        {  
           "id":"1",
           "question":"test1",
           "answer":"test1"
        },
        {  
           "id":"2",
           "question":"test1",
           "answer":"test1"
        },
        {  
           "id":"3",
           "question":"test1",
           "answer":"test1"
        }
     ];
  }

任何帮助都会令我感激不尽:)

1 个答案:

答案 0 :(得分:1)

fetch返回一个承诺,因此data将是一个承诺。每当您要访问数据时,都必须使用async / await或.then或其他方式来处理promise。万一您的API调用失败,您也没有任何错误处理。

如何处理此问题的一个示例是:

async ngOnInit() {
  try {
    const response = await FaqFakeDb.data;
    this.quesitons = await response.json();
  } catch {
    // fetch encountered an error; you can handle it here.
  }
}

但是,我建议您改用Angular内置的HttpClientModule并根据需要(在需要它的组件中)而不是在声明任意类时进行API调用。