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

NativeScript How to pass Data from service to component?

我有一个 service,它创建了一个 HttpGet 方法,我想将 returns 的对象从服务器传递到 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.

中列出对象

谢谢!!

i know its a better approach to use Promise, but i'm not so familiar with it.

没有。一点也不。 promise 不支持 , retries , debounces , 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`) ;
    }