【发布时间】:2017-04-15 02:10:18
【问题描述】:
我知道这可能不是 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 解决之前不会运行下一个函数。
我认为这与 storage.get 内部的范围有关,而不是直接在函数本身内部,并且尝试了一些解决方法无济于事。感谢您提供的任何意见!
【问题讨论】:
标签: javascript angular angular-promise angular2-services