是什么引发了承诺在Nativescript angular2失败?(What could cause

2019-09-28 18:10发布

我从一个数据库,在那里我有访问权限,可以再现邮差的GET结果尝试的HTTP GET。

我已经创造了angular2 {N}服务,我执行此GET,但我得到的错误:

JS: EXCEPTION: Error: Uncaught (in promise): Response with status: 200  for URL: null

JS: STACKTRACE:
JS: Error: Uncaught (in promise): Response with status: 200  for URL: null
JS:     at resolvePromise (/data/data/org.nativescript.ndemo/files/app/tns_modules/zone.js/dist/zone-node.js:496:32)
JS:     at resolvePromise (/data/data/org.nativescript.ndemo/files/app/tns_modules/zone.js/dist/zone-node.js:481:18)
JS:     at /data/data/org.nativescript.ndemo/files/app/tns_modules/zone.js/dist/zone-node.js:529:18
JS:     at ZoneDelegate.invokeTask (/data/data/org.nativescript.ndemo/files/app/tns_modules/zone.js/dist/zone-node.js:314:38)
JS:     at Object.NgZoneImpl.inner.inner.fork.onInvokeTask (/data/data/org.nativescript.ndemo/files/app/tns_modules/@angular/core/src/zone/ng_zone_impl.js:37:41)
JS:     at ZoneDelegate.invokeTask (/data/data/org.nativescript.ndemo/files/app/tns_modules/zone.js/dist/zone-node.js:313:43)
JS:     at Zone.runTask (/data/data/org.nativescript.ndemo/files/app/tns_modules/zone.js/dist/zone-node.js:214:48)
JS:     at drainMicroTaskQueue (/data/data/org.nativescript.ndemo/files/app/tns_modules/zone.js/dist/zone-node.js:432:36)
JS: Unhandled Promise rejection: Response with status: 200  for URL: null ; Zone: angular ; Task: Promise.then ; Value: Response with status: 200  for URL: null
JS: Error: Uncaught

 (in promise): Response with status: 200  for URL: null

我的服务:

import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';
export function createNonJsonResponse(http: Http, fullUrl: string): Promise<string>{
    return http.get(fullUrl)
            .toPromise()
            .then(response => response.text())
            // .catch(this.handleError);
}

我已经登录和HTTP给出的两个URL,他们都很好。 我不知道为什么会出现这种情况和谷歌不能帮我找到任何解决任何责任。

Answer 1:

看来,至少对我来说,@角/核心的HTTP模块按预期不工作。 我切换到nativescript的HTTP服务( https://docs.nativescript.org/cookbook/http ),并成功地完成我所需要的,没有任何问题。



Answer 2:

你注射服务的地方? 加入@Injectable()出口上面。 如果你改变你写的服务一点,看你是否收到相同的反应呢?

@Injectable()
export class createNonJsonResponse {

  fullUrl: string = 'http://httpbin.org/get';

  constructor(private http: Http) {}

  getNonJsonResponse() {
     return this.http.get(this.fullUrl)
        .toPromise()
        .then(response => response.text())
        .catch(this.handleErrors);
    }
}

然后将其导入到你的组件

import {createNonJsonResponse} from "./yourservicename.service"

最后叫它

this.createNonJsonResponse.getNonJsonResponse().then(function (data) {
  alert("here");
  //console.log(data);
  //console.dump(data);
})

这为我工作,我能够打我的警觉。



文章来源: What could cause a promise to fail in Nativescript angular2?