这是一种简单地获取数据(在angular2中)而不在服务中实现Observable和Response依赖性的方法吗?我发现它对于一个简单的请求来说是多余的。
答案 0 :(得分:3)
不,即使您在纯Javascript中执行此操作,您也必须使用回调路由,只需使用Observable
的实现更清晰,更易于处理。
您可以执行同步请求,但由于Javascript仅在一个线程中运行,因此您将阻止整个页面直到请求完成,因此强烈建议不要:
// DON'T TRY THIS AT HOME OR PRODUCTION OR ANYWHERE ELSE
let request = new XMLHttpRequest();
request.open("GET", theUrl, false); // false for synchronous request
request.send(null);
let response = JSON.parse(request.responseText);
答案 1 :(得分:1)
如果你比Rxjs更喜欢它们,Angular2可以使用Http的promises。
return this.http.get("/some/url")
.toPromise();
这不是同步的,你需要链接.then(response)
方法来获得结果。