uni-app A文件编写的class中的异步函数在B文件无法通过alt+左键定位到函数代码
uni-app A文件编写的class中的异步函数在B文件无法通过alt+左键定位到函数代码
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| PC | win10 | HbuilderX |
示例代码:
class classA {
constructor(arg) {
}
static a(){
console.log("我是a函数");
return "我是a函数";
}
static async b(){
console.log("我是b函数");
return "我是b函数";
}
}
module.exports = classA
const classA = require('./a.js');
module.exports = {
main: async (event) => {
let res = {};
res.a = classA.a();
res.b = await classA.b();
return res;
}
}
鼠标移动到b文件的 classA.a(); 的a上,alt + 左键 可以直接定位到 a文件的 a函数代码
而 鼠标移动到b文件的 classA.b(); 的b上,alt + 左键 无法定位到 a文件的 b函数代码
操作步骤:
按上面的示例代码,创建2个文件,代码复制进去,然后试试在 b文件中 alt+左键 分别点 a 和 b,会发现a可以跳转,b不可以跳转
预期结果:
a 和 b函数都可以直接跳到A文件对应的函数代码
实际结果:
a函数可以,而b函数不可以(结论是:async异步的函数不行,非异步的就可以)
更多关于uni-app A文件编写的class中的异步函数在B文件无法通过alt+左键定位到函数代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app A文件编写的class中的异步函数在B文件无法通过alt+左键定位到函数代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个问题是由于HBuilderX对异步函数的代码跳转支持不够完善导致的。在静态分析代码时,IDE可能无法正确识别async标记的函数引用。
解决方案:
-
临时解决方法:在调用异步函数时,可以使用
// @ts-ignore注释来辅助IDE识别,但这只是权宜之计。 -
配置jsconfig.json:在项目根目录创建jsconfig.json文件,配置TypeScript编译器选项以改善代码导航:
{
"compilerOptions": {
"target": "esnext",
"module": "commonjs",
"checkJs": true
},
"exclude": [
"node_modules",
"unpackage"
]
}
- 使用JSDoc注释:在classA的异步函数前添加类型注释:
class classA {
/**
* @returns {Promise<string>}
*/
static async b() {
console.log("我是b函数");
return "我是b函数";
}
}

