在角度应用程序中,即使在加载主页之前,我也想从支持的数据中获取数据。但即使在我从后端获取数据之前,我也需要发送用户的国家/地区名称。
所以,现在数据调用取决于第一个解析器调用。这种情况该如何处理?
这是我的代码:
import { Routes} from '@angular/router';
import { HomeComponent } from '../pages/home/home.component';
import { ResolveService } from '../shared/service/resolve.service';
import { ResolveCountryService } from '../shared/service/resolve-country.service';
export const AppRoutes:Routes = [
{path:"", component: HomeComponent, resolve:{ country : ResolveCountryService, data:ResolveService} }
]
Run Code Online (Sandbox Code Playgroud)
这里ResolveCountryService必须分享国家名称,ResolveService那么管理这个问题的正确方法是什么?
更新
如果我这样做:
export const AppRoutes:Routes = [
{path:"", component: HomeComponent, resolve:{ country : ResolveCountryService, resolve : {data:ResolveService } } }
]
Run Code Online (Sandbox Code Playgroud)
我收到错误如下:
src/app/shared/service/resolve-country.service"' has no exported member 'ResolveCountryService'.
Run Code Online (Sandbox Code Playgroud)
您可以使用asyncand ,await如此 plunkr中所示
例如,您将有一个async方法,该方法将返回具有所需结果的承诺(这将是您在执行其他操作之前要等待的第一个调用)。
然后你可以在其他async方法中调用await它。try/catch(如果你愿意,你可以在 a 中等待)。
在您的情况下,ResolveCountryService将等待检索用户所在国家/地区的方法。
请注意:await仅适用于 Promise,但您可以在将asyncPromise 返回到 的方法中解析可观察对象await。
| 归档时间: |
|
| 查看次数: |
2420 次 |
| 最近记录: |