如何从ionic2 / 3存储返回列表/值

时间:2017-04-14 17:37:56

标签: javascript angular angular-promise angular2-services

我知道这可能不是100%正确的方法,所以也欢迎清理建议。

刚刚学习/习惯了Ionic2,我在返回存储项目时遇到了麻烦。

服务

import { Injectable } from "@angular/core";
import { Storage } from '@ionic/storage';

@Injectable()
export class LocationItemService {
  locationItems: LocationItem[] = [];

  constructor(
    private storage: Storage
  ) {}

  getListItems(id): Promise<LocationItem[]> {
    this.storage.get("Location_Items_" + id).then((val) => {
      // This does console out the proper value.
      console.log(val);
      // Thus Promise contains the proper value.
      return Promise.resolve(val);
    });
  }
}

但是,当我在开发中运行我的应用程序时,我收到此错误: “声明类型既不是'void'也不是'any'的函数必须返回一个值。”

即使我设置了this.locationItems,我仍然需要返回promise,以便在Promise解析之前不会运行下一个函数。

我认为它与scope.get内部的范围有关,而不是直接在函数本身内,并尝试了一些解决方法无济于事。感谢您提供的任何意见!

1 个答案:

答案 0 :(得分:0)

Oi,我没有在此之前使用退货。存储。因为它已被定义为承诺。因此,我的回复陈述基本上陷入了困境。