回调函数、异步获取到的数据如何导出?
发布于 6 年前 作者 ZYSzys 3236 次浏览 来自 问答
 axios({
 	method: 'post',
	url: '...',
	data: {...}
 }).then(res =>{
 	const data = res.data // 这里的 data 数据应该如何导出?
	// module.exports = { data }  此时另一文件 require 这个模块后获取到的 list 为undefined
 })
6 回复

可以换一个思路 放进缓存里面在获取

@weizhuanhua 应该如何实现,可以写一下示例代码吗

@ZYSzys module.exports不能再异步中使用 可以考虑一下 redis 做缓存 去官网看下 以后项目肯定是要用到的

@weizhuanhua 好的,感谢

把data放外面就好了,不过,你需要另一个文件require,这个资源又是异步加载的,另一个文件的逻辑业务是不是混乱了?比如,你说的undefined,是否有好好考虑?如果是前端,就看看状态管理吧,后端就需要考虑异步的这个资源,要让这个资源是事件驱动的,或者你需要自己定义一个生命周期使得这个资源在周期的某个钩子上是可以获取的,再或者你就返回一个promise吧,让其他模块调用这个promise,总之你很难确保另外的文件加载这个资源的时候,已经被负值了,另外推荐promise的async/awiat写法,最后,感觉你这样的想法不怎么好。

这种编码方式不靠谱,折腾自己么… 就用方法调用就好了,require个啥

回到顶部