私はSQLiteの最後に挿入されたIDを取得しようとしているionic/angularjsアプリを持っていますが、私が試したことは何でも試してみて、約束のオブジェクトの変数にアクセスします戻り値は未定義です。約束から項目にアクセス
私の約束は;
$ionicPlatform.ready(function() {
$cordovaSQLite.execute(db, query, parameters)
.then(function (result) {
q.resolve(result);
}, function (error) {
console.warn('I found an error');
console.warn(error);
q.reject(error);
});
});
return q.promise;
それはで呼ばれています:
self.addPicture = function(photo) {
var parameters = [photo.base64];
console.log("INSERT INTO AssetPhotos (id, base64) VALUES (NULL,?)", parameters);
var id = DBA.query("INSERT INTO AssetPhotos (id, base64) VALUES (NULL,?)", parameters);
return id;
}
そして、実際のコードで:
Assets.add($scope.addasset);
var i = 0;
for (pic in $scope.photos) {
console.log(Assets.addPicture($scope.photos[i]));
i++;
}
しかし、それが返されます。
Promise {$$state: Object}
$$state: Object
status: 1
value: Object
insertId: 20
rows: Object
rowsAffected: 1
__proto__: Object
__proto__: Object
__proto__: Promise
(または簡単にそれを見るために)
私が達成しようとしている何さはconsole.log(Assets.addPicture($ scope.photos [i]の))だけinsertIdを返すこと。私は右に見えている以下にコードを更新した:私は.value.InsertIdと.InsertIdが、私はちょうどそれを
Editを使用するために戻ってちょうどInsertIdを得るように見えることはできませんforwhatever理由を追加しようとしましたあなたが.thenの内部を除く)(約束の戻り事をCONSOLE.LOGすることはできません
$scope.addAsset = function(){
Assets.add($scope.addasset);
var i = 0;
for (pic in $scope.photos) {
Assets.addPicture($scope.photos[i])
.then(res => console.log(res.insertId))
i++;
}
}
実際にはかなり意味があります。ありがとうございました - Uncaught SyntaxError:missing)引数リストの後にコードエラーがありますが、大括弧でわかりました – TMB87
恐らく余分な括弧がついていますか? – ehacinom
これは明らかな答えですが、私は本当にどこに見えないのですか – TMB87