Javascript 我可以一次返回10条记录吗?在第二个循环中,我可以提取10条不同的记录吗?

Javascript 我可以一次返回10条记录吗?在第二个循环中,我可以提取10条不同的记录吗?,javascript,loops,angular,firebase,firebase-realtime-database,Javascript,Loops,Angular,Firebase,Firebase Realtime Database,这是我用来从Firebase中提取数据并在下面运行循环的代码 loadPeople() { return new Promise(resolve => { this.dataProvider.getProducts().subscribe((products) => { this.start; this.products = products; this.AKey = products.pop().$key;

这是我用来从Firebase中提取数据并在下面运行循环的代码

loadPeople() {

    return new Promise(resolve => {

      this.dataProvider.getProducts().subscribe((products) => {
        this.start;
        this.products = products;
        this.AKey = products.pop().$key;

        console.log(products);
        for(let person of products) {
          this.people.push(person);
        }

        resolve(true);

      });

    });

  }

    doInfinite(infiniteScroll:any) {
     console.log('doInfinite, start is currently '+this.start);
     this.start+=50;

     this.loadPeople().then(()=>{
       infiniteScroll.complete();
     });

  }

}

我没有正确地使用承诺。下面回顾一下如何使用Firebase对承诺进行分页。

loadProducts(){
var products=firebase.database().ref('/products');
产品。一次(“价值”)
.then(功能(捕捉){
var keys=Object.keys(snap.val()).sort();
var pageLength=10;
var pageCount=keys.length/pageLength;
var currentPage=1;
var承诺=[];
var-nextKey;
var查询;
对于(变量i=0;i
请在此处查看:
loadProducts(){
   var products = firebase.database().ref('/products');
   products.once('value')
   .then(function (snap){
     var keys = Object.keys(snap.val()).sort();
     var pageLength = 10;
     var pageCount = keys.length / pageLength;
     var currentPage = 1;
     var promises = [];
     var nextKey;
     var query;

     for (var i = 0; i < pageCount; i++) {
       nextKey = keys[i * pageLength];
       console.log('key', nextKey);
       query = products.orderByKey().limitToFirst(pageLength).startAt(nextKey);
       promises.push(query.once('value'));
     }
      Promise.all(promises)
      .then(function (snaps) {
       var pages = [];
       snaps.forEach(function (snap) {
       pages.push(snap.val());
      })
      console.log('pages', pages);
      Promise.all(pages)
      .then(function (ASINs) {
        var asins = [];
        ASINs.forEach(function (ASIN) {
          asins.push(snap.val());
        })
        console.log('asins', asins);
      })
     })
   });
   }