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

本文讨论了在JavaScript中遇到的模块导入问题,特别是在类内部无法直接访问导入的函数。通过示例展示了在类中正确引入并使用外部函数的方法,强调了在类内部需先引入模块才能使用其导出内容的重要性。

声明:本文优快云作者原创投稿文章,未经许可禁止任何形式的转载,原文链接

​ 在api.js下声明了

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

​ 然后在entity.js中声明

//下面写法是错误的
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()即可:

//下面写法是正确的
class User {
  constructor() {}
  id
  name
  getInfo() {
    return new Promise((resolve, reject) => {
      const api = require("./api") //此处引入api文件,这时就能使用了
      api.getUserInfo().then((res) => {
        resolve(res.data)
      })
    })
  }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值