我的代码是
import 'rxjs/Rx'; ... let _this = this; return new Promise(function(resolve, reject) { _this.http[method](url, data, { headers: headers }) .toPromise() .then( (data) => { resolve(data); }, error => { reject(error); } ); });
"订阅"不是来自我的代码,看起来像是有点原始的东西。
错误讯息:
EXCEPTION: Error: Uncaught (in promise): TypeError: _this.http.get(...).subscribe is not a function
答案 0 :(得分:2)
您正在打击从基于promise
的异步范例移植到reactive-extensions
替代方案的 Angular2 计划。而不是使用承诺,而是使用subscribe
代替:
import 'rxjs/Rx';
...
invoke<T>(onNext: (data: T) => void, onError: (error: any) => any) {
this.http[method](url, data, {
headers: headers
})
.map(response => response.json() as T)
.subscribe(onNext, onError);
});
我也写了一篇关于此的博文。