簡體   English   中英

無法為組件獲取數據角度服務

[英]can't get data angular service to component

我的服務職能是..

 getPro():any{
    this.database.all("SELECT * FROM product").then(rows => {
        console.log("hello pro hear....")
        let proList:Product[]=[]

        for(var row in rows) {

            proList.push(new Product(rows[row][0],rows[row][1],rows[row][2],rows[row][3],rows[row][4]))
           /* proList.push({
                "id": rows[row][0],
                "name": rows[row][1],
                "hsn": rows[row][2],
                "rate": rows[row][3],
                "tax":rows[row][4]
            })*/
            console.log("list ",rows[row][0])
        }
        console.log("total pro ",proList.length)
        return "hello"
    }, error => {
        console.log("SELECT ERROR", error);
    });
}

我的組件是..

 proList:any

fatchPro(){
   this.proList= this.dataservice.getPro();
    console.log("fatchPro" ,this.proList)
}

但是當我console.log(proList)它會變得不確定

我該如何解決這個錯誤...

試試看

 getPro():any{
    return this.database.all("SELECT * FROM product").then(rows => {
        console.log("hello pro hear....")
        let proList:Product[]=[]

        for(var row in rows) {

            proList.push(new Product(rows[row][0],rows[row][1],rows[row][2],rows[row][3],rows[row][4]))
           /* proList.push({
                "id": rows[row][0],
                "name": rows[row][1],
                "hsn": rows[row][2],
                "rate": rows[row][3],
                "tax":rows[row][4]
            })*/
            console.log("list ",rows[row][0])
        }
        console.log("total pro ",proList.length)
        return "hello"
    }, error => {
        console.log("SELECT ERROR", error);
    });
}

fatchPro(){
   this.proList= this.dataservice.getPro().then(list =>
   {
   this.proList = list;
    console.log("fatchPro" ,this.proList)
   });

}

您的dataservice.getPro function正在創建一個Promise並對其進行預訂,但自身未返回任何內容。 因此,未設置proList 您可以在fatchPro function返回Promise並訂閱它:

getPro(): Promise<any>{
    return this.database.all("SELECT * FROM product").then(rows => {
        return rows.map(row => new Product(row[0], row[1], row[2], row[3], row[4]));
    }, error => {
         console.log("SELECT ERROR", error);
    });
}

-

proList: Product[];

fatchPro() {
   this.dataservice.getPro().then(proList => {
       this.proList = proList;
       console.log("fatchPro" ,this.proList);
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM