繁体   English   中英

NativeScript如何将数据从服务传递到组件?

[英]NativeScript How to pass Data from service to component?

我有一个制作HttpGet方法的service ,我想将服务器返回的对象传递给Task component数组

我知道使用Promise是更好的方法,但是我不太熟悉它。

所以这是我到目前为止所做的:

零件 :

userTaskList: Task[ ];

  this.data=this.taskService.getAllTasks()
    this.userTaskList.push(this.data);

服务内容:

getAllTasks() {
    const req = this.http.get(`${this.serverUrl}/GetTasks`).toPromise().then(
        res => {
        console.log("success" , res);
    });
}

我在日志中得到了对象。

success [{
JS:   "Id": 27,
JS:   "UserId": 12,
JS:   "Name": "Teeest",
JS:   "Description": "99",
JS:   "Latitude": 0,
JS:   "Longitude": 0,
JS:   "Radius": 99,
JS:   "Created": "2018-08-29T14:01:51.0272032+03:00",
JS:   "LastUpdate": "2018-08-29T14:01:51.0272032+03:00",
JS:   "IsActive": true
JS: }]

但是如何将其发送到组件? 我想在userTaskList列出对象。

谢谢 !!

我知道它是使用Promise的更好方法,但是我不太熟悉。

一点都不。 promise不支持,重试,防抖动,switchMaps等。

更不用说http请求是自动完成的(rxjs POV)

无论如何:

将您的代码更改为:

零件 :

this.taskService.getAllTasks().toPromise().then((data)=> { this.userTaskList =  data});

服务内容:

getAllTasks() {
   return  this.http.get(`${this.serverUrl}/GetTasks`) ;
}

要么

async foo(){

let data = await  this.taskService.getAllTasks().toPromise() ;
this.userTaskList = data

}

服务应公开功能而无需调用。 调用时,您将获得该值。

顺便说一句-我会用Observable完成的。 但我继续您的榜样。

所以我会用这个:

 this.taskService.getAllTasks().subscribe((data)=> { this.userTaskList =  data});

 getAllTasks() {
       return  this.http.get(`${this.serverUrl}/GetTasks`) ;
    }

暂无
暂无

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

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