typescript - Nest.js RangeError:超出最大调用堆栈大小
问题描述
我想使用 axios 和 nestjs 向外部 api 发出请求。
我使用 axios 接受了 Nestjs这个答案,而不是在控制器中执行请求,我创建了一个服务
// controller
import { Controller, Get } from '@nestjs/common';
import { CollectService } from './collect.service';
@Controller('collect')
export class CollectController {
constructor(private collectService: CollectService) {}
@Get()
getResponse(){
this.getResponse();
}
}
// ----------service ------------------------
import { Injectable, HttpService } from '@nestjs/common';
@Injectable()
export class CollectService {
constructor(private httpService: HttpService) {}
async getResponse() {
const response = await this.httpService.get('https://reqres.in/api/users/2').toPromise();
return response.data;
}
}
这给了我一个stackoverflow
[Nest] 23928 - 02/28/2021, 12:16:18 PM [ExceptionsHandler] Maximum call stack size exceeded +74479ms
RangeError: Maximum call stack size exceeded
是什么导致了这种行为?
解决方案
您调用控制器的getResponse()
无穷大,然后它会引发Maximum call stack size exceeded
错误。
我认为您想改为调用服务的功能:
@Get()
getResponse(){
this.collectService.getResponse();
}
推荐阅读
- angularjs - 如果我传递 api,Angular 服务不会返回任何值
- ios - 转换为纹理时,UIImage 的透明度丢失
- apache-spark - Spark 1.6 DataFrame 优化连接分区
- python - Networkx 根本不工作 - 最基本操作的奇怪错误
- node.js - React-Native 卡在 Loading dependency graph done 上。没有错误
- typescript - Angular材料6的包装菜单组件
- javascript - 无法从匿名函数中保存数据
- shopware - Shopware 代码段的问题
- scala - 如何使用 spark-scala 从表中计算空值?
- java - 如何将字符串的长度打印到文件中