如何将值从PHP推入Angular定义变量?

时间:2018-05-25 17:21:25

标签: javascript php json angular typescript

我正在编写一个Angular 4应用程序,我将基于 id 值的一些JSON返回给PHP脚本。我认为通过我的代码,我将一个值传递到下面的 this.PropertiesList

examineProperties(id) {
    let currentTestIDToFindProperties = this.testScheduleSet[id];
    this.allProperty = this.httpClient.get(this.currentTestIDToFindPropertiesUrl + "?testID=" + currentTestIDToFindProperties.value).subscribe((data: any) => {
        this.testPropertiesList = data;
        console.log("List",this.testPropertiesList);
    });
    console.log("List After Loop",this.testPropertiesList);
}

我不确定为什么,但我得到一个响应,其中console.log为" List After Loop"显示之前"列表" console.log,显示为 undefined ,如下所示:

enter image description here

this.testPropertiesList 如何在订阅功能之外保留?为什么" List After Loop"在" List"?

之前显示在控制台中

1 个答案:

答案 0 :(得分:1)

您正在使用 async programming ,您无法暂停代码的执行,您的订阅将在以后解决,但您无法预测何时。 console.log()之外的subscribe在您的订阅被解决之前执行,这就是为什么它未定义的内容和console.log()内部订阅回调仅在订阅时被调用已经解决。
请参阅 this 以便更好地理解。