没有Rxjs的Angular2 http.get

时间:2016-10-18 14:32:36

标签: javascript http angular

这是一种简单地获取数据(在angular2中)而不在服务中实现Observable和Response依赖性的方法吗?我发现它对于一个简单的请求来说是多余的。

2 个答案:

答案 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)方法来获得结果。