Как прочитать значение возврата, если возвращаемый тип является объектом в машинописи? - PullRequest
0 голосов
/ 22 мая 2019

У меня есть две функции. Моя первая функция возвращает объект, я хочу использовать этот объект во второй функции. То, что я сделал, здесь:

// where accid = res.rows.item(i).accountId; somewhere in code which outputs accid=16757
replaceIds(accid){
    console.log("yet to be done line number: 131",accid);
    let result={};
    let addressid;
    let communicationId;
    this.configProvider.Customquery("Select * from addresses where accountid=? order by id DESC limit 1",[accid]).subscribe(res=>{
      // console.log("res",res);
      if (res.rows!=undefined)
      // var companyId=res.rows.item(i).compnayId;
      for (var i = 0; i < res.rows.length; i++) {
        // console.log("result",res.rows.item(i));
          addressid=res.rows.item(i).addressId;
        }
        this.configProvider.Customquery("Select * from communications where accountid=? order by id DESC limit 1",[accid]).subscribe(res1=>{
          // console.log("res",res1);
          if (res1.rows!=undefined)
          // var companyId=res.rows.item(i).compnayId;
          var newItem=[];
          for (var i = 0; i < res1.rows.length; i++) {
            // console.log("result",res1.rows.item(i));
             communicationId=res1.rows.item(i).communicationId;
            }


        result={addressid,communicationId};
        console.log("ids",result,typeof(result));
        return result;
      }); 
    });
  }

и вторая функция:

    OrdersJson(){
      var flag:boolean=false;
      var val:boolean=true;
     this.configProvider.Customquery("Select * from Orders where synced=?",[flag]).subscribe(res=>{
        if (res.rows!=undefined)
        var newItem=[];
         for (var i = 0; i < res.rows.length; i++) {
           const accid:number=res.rows.item(i).accountId;
           console.log("replcement of ids is started",typeof(accid));
           const getIds=this.replaceIds(accid);
           console.log("Ids in Order Json",getIds);

          }
  });
}

но консоль печатает getIds как undefined. Пожалуйста, дайте мне знать, что не так с моим кодом.

Ответы [ 2 ]

0 голосов
/ 22 мая 2019
  constructor(){ 
    this.createJson();
  }

  replaceIds(accid:string){
    let result={};
    result={addressid:1234,communicationid:3456};
    return result;
  } 

  createJson(){
    const accid = '';
    const getIds=this.replaceIds(accid);
    console.log("Ids in Order Json",getIds);
  }

Результат:

Ids in Order Json
{addressid: 1234, communicationid: 3456}
0 голосов
/ 22 мая 2019

Переменная результата не является ни объектом, ни массивом.

  • Если вы хотите использовать ее как объект, она может выглядеть следующим образом: result = {a: 1234, b: 3456} (я имею в виду как пары значений ключа).
  • Если вы хотите использовать его как массив, то вот так: result = [1234, 3456]
...