TypeScript Store Parse查询结果

时间:2017-11-06 14:38:08

标签: javascript typescript parse-platform

我有以下代码

let myMax items =
    match items with
     | [] -> failwith "no data"
     | head :: tail ->
        let rec recMax maxSoFar items =
            match items with
                | [] -> maxSoFar
                | head :: tail ->
                    if head > maxSoFar then
                        recMax head tail
                    else
                        recMax maxSoFar tail
        recMax head tail

export class AppComponent implements OnInit { public guests: any[] = []; constructor(private apiService: ApiService) { } ngOnInit(): void { this.apiService.getAllGuestsQuery().find({ success(results) { for (let i = 0; i < results.length; i++) { const object = results[i]; console.log(object.get('companyName')); } }, error(error) { console.log("Error: " + error.code + " " + error.message); } }); } } 会返回getAllGuestsQuery个对象。我想将结果存储在我的来宾数组中。例如。做Parse.Query之类的事情 但是我无法在success方法中访问this.guests类变量。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

export class AppComponent implements OnInit {
  public guests: any[] = [];


  constructor(private apiService: ApiService) {

  }

  ngOnInit(): void {
    let vm = this;
    this.apiService.getAllGuestsQuery().find({
        func(r){ vm.guests } // will be available
    });
  }
}

这是因为当您将{}构造传递给find()函数时,会在那里创建一个新的作用域。如果您使用ES6箭头语法,您可以做得更好(但我写的麻烦,你必须以完全不同的方式处理错误,最好是承诺)

答案 1 :(得分:0)

您可以尝试在this方法的开头,在单独的变量中传递对ngOnInit()的引用。像let that = this;这样的东西。稍后在回调中通过this参考that(班级实例)。