【发布时间】:2022-02-15 23:25:11
【问题描述】:
我正在尝试构建一个应用程序,但我不希望我的组件包含不必要的代码。我想将很多逻辑放入服务中,然后将服务注入到我的组件中。 假设我的组件有一个名为“结果”的变量:
my.component.ts
.....
private result:number;
我的服务有一个异步方法:
my.services.ts
......
......
getNumberFromApi(){
callAsync().subscribe( data => {
console.log('This is the data obtained..'+data);
})
我希望有机会将参数传递给 getNumberFromApi() 方法:
getNumberFromAPI(destinationVar:number){
callAsync().subscribe( data => {
console.log('This is the data obtained..'+data);
destinationVar=data;
})
这样在我的组件中我就可以通过这种方式调用该服务的方法:
my.component.ts
.....
private result:number;
myServiceInstance.getNumberFromApi(result);
我知道这是不可能的(可能是因为在响应到达时方法的堆栈已经消失了),但我找不到执行此操作或类似方法的方法。有人可以推荐我一个替代品吗?我想从组件的服务变量中修改,即使使用异步方法,没有除了组件中的方法调用行之外的任何东西。这可能吗?我是否错过了关于 Typescript/Angular 如何在这里工作的关键概念?谢谢。
【问题讨论】:
标签: angular typescript asynchronous methods parameters