插入商店时如何收到错误?

How to receive error while inserting in store?

我在 AngularJS 中为 indexedDB 使用 angular-indexedDB。 如果插入不成功,我想收到错误消息。但是我没有收到任何错误,如果我 运行 将相同的代码设置为唯一名称两次,它就会从函数中出现。

错误:

ConstraintError return _this.store.add(item);

ConstraintError req = this.store.openCursor();

代码:

angular.module('myModuleName')
  .controller('myControllerName', function($scope, $indexedDB) {

    $scope.objects = [];

    $indexedDB.openStore('people', function(store){

      store.insert({"ssn": "444-444-222-111","name": "John Doe", "age": 57}).then(function(e){console.log('inside insert');});

      store.getAll().then(function(people) {  
        // Update scope
        $scope.objects = people;
      });
    });
});

我认为在 promise .then 中添加错误回调应该可行

还要创建一个 getAll 方法来检索来自 objects 的所有数据,其中 response.data 用于获取从服务器返回的数据。

代码

angular.module('myModuleName')
  .controller('myControllerName', function($scope, $indexedDB) {

    $scope.objects = [];

    $scope.getAll = function(){
       store.getAll().then(function(response) {  
          // Update scope
          $scope.objects = response.data;
       });
    };
    $indexedDB.openStore('people', function(store){

       store.insert({"ssn": "444-444-222-111","name": "John Doe", "age": 57})
       .then(function(e){
           console.log('inside insert');
           //reload data only call get succeed
           $scope.getAll();
        }, function(error){
           //do error handling stuff here
           //you will get error returned from server here.
           console.log('Error here', error)
        });

    });
});