Skip to content

JS class中无法使用外部import的函数

​ 在api.js下声明了

javascript
const getUserInfo = function () {
  //do something
}
module.exports = {
  getUserInfo: getUserInfo
}

​ 然后在entity.js中声明

javascript
//下面写法是错误的
import {
  getUserInfo
} from "./api"
class User {
  constructor() {}
  id
  name
  getInfo() {
    return new Promise((resolve, reject) => {
      getUserInfo().then((res) => {
        resolve(res.data)
      })
    })
  }
}

​ 声明了User对象后调用getInfo()是报错说getUserInfo()不存在,其实是因为在User这个类中并不能拿到外部引入的内容,所以在class内部引入getInfo()即可:

javascript
//下面写法是正确的
class User {
  constructor() {}
  id
  name
  getInfo() {
    return new Promise((resolve, reject) => {
      const api = require("./api") //此处引入api文件,这时就能使用了
      api.getUserInfo().then((res) => {
        resolve(res.data)
      })
    })
  }
}