引入 async 函数报: TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

2019-08-10 11:59:30 +08:00
 hp0844182
我在使用 electron-vue 开发时碰到这个问题:
> 我在一个文件中定义一个 async 函数,然后按 commonJS 规范暴露出去。该代码如下:
```
async function testAsync(){
var a = 1;
await a+2;
return a
}


module.exports = {
test
}
```
>但是报一个这样的错:TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

>而当我去掉该函数的 async 以及 await 关键字之后又正常了。。。有点蒙蔽。。。
3249 次点击
所在节点    问与答
7 条回复
des
2019-08-10 12:17:48 +08:00
function testAsync 然后导出的是 test ?
hp0844182
2019-08-10 12:31:33 +08:00
写错了···导出的是 testAsync
ochatokori
2019-08-10 12:52:36 +08:00
好像是不能导出异步方法?
你可以让这个方法返回一个 promise 在 promise 里面 await 但不要写成 async 方法
POPOEVER
2019-08-10 13:45:51 +08:00
代码里用了 import 吗?如果用了,试试用 export default testAsync 代替 module.exports 看看
hp0844182
2019-08-10 14:00:17 +08:00
@POPOEVER 在主进程中全部用的 require,渲染进程里用的 import
POPOEVER
2019-08-10 16:51:12 +08:00
@hp0844182 哦,反正 import 和 module.exports 不能混用就是了
cuiweiqiang
2019-08-10 16:52:38 +08:00
用 exports.testAsync 试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/590681

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX