すみません…ある実行結果を受け取る関数を作っている初心者です。
その関数の実行結果をreturnで受け取りたいんですが値が返ってこなくて困っています。
デバッグで確認したところどうやらreturn時点で中身が空っぽになってしまい値を取得する事が出来ていませんでした。
ためしに、値が返ってくるresult.data.names時点にreturnをおいても結果かわらず、、。
どのようにして空っぽにならずに値を受け取ることができるのでしょうか?
■ myDB.ts
TypeScript
1import { Apollo } from 'apollo-angular'; 2import gql from 'graphql-tag'; 3import { Name } from './name'; 4 5export class MyDB { 6 7 constructor(private apollo: Apollo) {} 8 9 names: Name[] 10 11 // 取得 12 public Get(): Name[] { 13 this.apollo 14 .watchQuery<any>({query: gql`{ names {id name}}`}) 15 .valueChanges.subscribe(result => { 16 this.names = result.data.names; 17 }); 18 console.log(this.names) 19 return this.names 20 } 21 22}
試したこと
■ myDB.ts * returnの場所を変えても変わりませんでした。
TypeScript
1 public Get(): Name[] { 2 this.apollo 3 .watchQuery<any>({query: gql`{ names {id name}}`}) 4 .valueChanges.subscribe(result => { 5 return result.data.names; 6 }); 7 }
すみませんがご教示いただければと思います、、。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/14 08:37
退会済みユーザー
2019/07/14 08:53 編集