Arbeits ich Versprechen für meine Web-app wie this-latente Versprechen nicht
in Winkel bin mitvar deferred = $q.defer();
auf Erfolg -
deferred.resolve(profile); // profile = JSON object
On Failure -
deferred.reject(1); // 1 or no value returned
Am Ende Funktion -
return deferred.promise;
Dann gebe ich für dieses zurückgegebene Promise-Objekt eine andere Methode aufrufen. Aber es ruft nicht. Wenn ich Callback (Fehler, Erfolg) verwende, funktioniert es gut. Kann jemand vorschlagen, was mit meinem Versprechen falsch ist.
-Code Snippet-
function open() { // for initializing DB,getting called from service
var deferred = $q.defer();
var options = {
Encryption: {
encryptKey: false, // optional encrypt primary key
secrets: [{
name: 'dddd',
key: 'xxxxxxxxxx'
}]
}
};
var schema = {
stores:[{
name:'profile',
encrypted: true
}]
};
var db = new ydn.db.Storage('nowconferdb', schema, options);
db.onReady(function() {
console.log('DB is initialized'); // getting this
profilestorage.setDB(db); // getting called and setting DB in profilestorage service
deferred.resolve(true);
});
db.addEventListener('fail', function (event) {
var err = event.getError();
if (err.name == 'versionchange') {
console.log('The application is updated, please refresh to upgrade.');
profilestorage.setup(db);
} else {
console.log('connection failed with ' + err.name + ' by ' + err.message);
db = null; // no operation can be placed to the database instance
}
deferred.reject(false);
});
return deferred.promise;
}
Dies ist meine Berufung Methode -
storageservice.open().then(function() {
console.log('post initializing storageservice'); // not getting it.
});
Vielen Dank für Ihre aufrichtigen Bemühungen.
Können Sie bitte Ihre Funktion, oder zumindest Teile davon, damit wir ein wenig mehr Kontext für Ihr Problem bekommen können. – cbass
Wie rufst du die nächste Funktion an? Kannst du die Linie dort einfügen, wo du eine andere Funktion anrufst, nachdem du ein Versprechen erhalten hast. – mkkhedawat
Kannst du eine Geige schreiben? Es ist schwer zu verstehen, was die Problemquelle ist. –