繁体   English   中英

承诺Angular2 ngOnInit this

[英]Promises Angular2 ngOnInit this

我正在尝试将一个诺言中的值分配给一个变量(属性)。 我可以从console.log检索值。 但是,当我尝试将其分配给“ this”时,它将无法工作。 请参阅下面的代码:

export class AppComponent implements OnInit {

    graphData:any;


    constructor(public _RelaticsService:RelaticsService, public _RelaticsDataTransformService:RelaticsDataTransformService) {


    }

    ngOnInit() {

        this._RelaticsService.GetData('persons', '37035202-abf8-4822-b8a5-b492c97a4c83', '123456')
            .then((val) =>
                this._RelaticsDataTransformService.ObjectTreeTransformation(val)
            )
            .then((val) => {
                console.log(val); // logs object
                this.graphData = val; // assigns object to this.graphdata
                console.log(this.graphData); // logs object
            })
            .catch((err) => console.log("rejected:", err));

        console.log(this.graphData) // logs undefined??

    }


}
console.log(this.graphData) // logs undefined??

在执行之前

this._RelaticsService.GetData('persons', '37035202-abf8-4822-b8a5-b492c97a4c83', '123456')
        .then((val) =>
            this._RelaticsDataTransformService.ObjectTreeTransformation(val)
        )
        .then((val) => {
            console.log(val); // logs object
            this.graphData = val; // assigns object to this.graphdata
            console.log(this.graphData); // logs object
        })
        .catch((err) => console.log("rejected:", err));

这个

this._RelaticsDataTransformService.ObjectTreeTransformation(val)
        )
        .then( /* passed code */ )

只是计划传递的代码以供以后执行(当调用返回时),然后继续执行以下语句。

因此,您的代码似乎可以正常工作,只是检查无效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM