簡體   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