Handeling使用push(数据)Angularfire2时出错

时间:2018-01-28 19:36:15

标签: javascript angular typescript firebase angularfire2

使用angularFire2推送数据时如何处理错误?

我使用了以下方法:

todoLists: AngularFireList<TodoList>;

addList(data): ThenableReference {

    const item: Item = {
      name: data.task,
      state: false,
      description: 'No description'
    };
    const todoList: TodoList = {
      id: '',
      name: data.name,
      items: [item]
    };
    this.todoLists.push(todoList).then(_ => this.presentToast('List succesfuly added'))
                               .catch(err => _ => this.presentToast('Something wrong happened'));
  }

这里的问题是AngularFire的push方法返回ThenableReference,因此该接口中不存在catch方法。

这是来自编辑器的消息(vscode)

  类型promiseLike&lt;&gt;上不存在

属性catch   必须有另一种方法来处理错误。

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我发现我可以使用push()方法创建可用的引用,然后使用set在.catch上返回错误。

查看更多here in the docs

todoLists: AngularFireList<TodoList>;

addList(data): void {
  const item: Item = {
    name: data.task,
    state: false,
    description: 'No description'
  };
  const todoList: TodoList = {
    id: '',
    name: data.name,
    items: [item]
  };

  // .push() also creates a new unique key, which can be accessed with ref.key
  let ref: Reference = this.todoLists.push(); 
  ref.set(todoList)
    .then( () => this.presentToast('List succesfuly added'))
    .catch(err => this.presentToast('Something wrong happened: ' + err));
}