如何通过 Javascript 上的数组 运行?

How to run through array on Javascript?

我无法从 Ionic 5 上的电容器存储中检索所有值,我一直在检索 ZoneAwarePromiseArray Iterator ,如何处理?

谢谢

//MAIN.ts

ngOnInit() {    
    let vaya = this.storage.keys()
    .then(result => {
      return result
    });
    vaya.then(data => {
      for (let item of data) {
        console.log(this.storage.getItem(item))
      }
      
    })
  }

//服务STORAGE.ts

async keys() {
    const { keys } = await Storage.keys();
    console.log('Got keys: ', keys);
    return keys
}

电容器存储是异步的,因此要检索它拥有的所有值,您需要:

  1. 确保电容器已初始化
  2. 获取密钥
  3. 写一个可以做异步处理的循环

这应该有效(这将按顺序检索数据):

ngOnInit() {  
    let values = [];  
    this.storage.keys().then(async (keys) => {
      for (let key of keys) {
        let value = await this.storage.get(key)
        values.push(value)
      };
    });
  }

您也可以并行做出承诺运行:

  ngOnInit() {  
    let values = [];  
    this.storage.keys().then(async (keys) => {
      const promises = keys.map(key => this.storage.get(key))
      values = await Promise.all(promises);
    });
  }