Javascript 从实例化对象调用异步方法会产生错误:TypeError:对象(…)不是函数

Javascript 从实例化对象调用异步方法会产生错误:TypeError:对象(…)不是函数,javascript,object,async-await,es6-modules,Javascript,Object,Async Await,Es6 Modules,我目前正在开发一个用于教育目的的应用程序,面临着一个可能很琐碎但无法解决的问题 因此,基本上我正在尝试从外部API获取一些数据(使用Axios)。我将代码分成了几个模块,导出到index.js文件,然后从中实例化新对象并调用异步方法getResults(),作为回报,该方法将从API中获取数据。从那一点开始,就出现了一个get错误 TypeError:对象(…)不是函数 下面是一个示例代码: 模块Search.js: export default class Search { constru

我目前正在开发一个用于教育目的的应用程序,面临着一个可能很琐碎但无法解决的问题

因此,基本上我正在尝试从外部API获取一些数据(使用Axios)。我将代码分成了几个模块,导出到index.js文件,然后从中实例化新对象并调用异步方法
getResults()
,作为回报,该方法将从API中获取数据。从那一点开始,就出现了一个get错误

TypeError:对象(…)不是函数

下面是一个示例代码:

模块Search.js

export default class Search {
  constructor(query, num) {
    this.query = query;
    this.num = num;
  }

  async getResults() {
    const url = 'API_URL';
    const key = 'API_KEY';
    try {
      const res = await axios(`${url}?query=${this.query}&number=${this.num}&apiKey=${key}`);
      this.result = res.data.results;
      console.log(this.result);
    } catch (error) {
      console.log(error);
    }
  }
}
下面是index.js文件:

import Search from "./models/Search";
const s = new Search('cheese', 2);
s.getResults()
最后是控制台中的错误:

TypeError: Object(...) is not a function
    at Search._callee$ (Search.js:42)
    at tryCatch (runtime.js:65)
    at Generator.invoke [as _invoke] (runtime.js:303)
    at Generator.prototype.<computed> [as next] (runtime.js:117)
    at asyncGeneratorStep (Search.js:5)
    at _next (Search.js:7)
    at eval (Search.js:7)
    at new Promise (<anonymous>)
    at Search.eval (Search.js:7)
    at Search.getResults (Search.js:65)
TypeError:对象(…)不是函数
在Search.\u callee$(Search.js:42)
在tryCatch(runtime.js:65)
在Generator.invoke[as_invoke](runtime.js:303)
在发电机上。原型。[作为下一个](runtime.js:117)
在asyncGeneratorStep(Search.js:5)
下一步(Search.js:7)
评估时(Search.js:7)
在新的承诺()
在Search.eval(Search.js:7)
在Search.getResults(Search.js:65)
我可能在这里做错了什么,任何帮助和见解都将不胜感激。谢谢

await axios(`${url}?query=${this.query}&number=${this.num}&apiKey=${key}`);
这是行创建错误

axios
是您试图用作
功能的对象

您可能希望使用axios提供的
get/post
方法调用端点

await axios.get(`${url}?query=${this.query}&number=${this.num}&apiKey=${key}`);

您可以看看您想如何使用axios

非常感谢您的回复,您的回答让我意识到我导入axios是错误的。我像这样从“axios”导入{axios};应该是这样从“axios”导入axios;没有花括号。