Ein gemeinsames Thema, das ich weiß, aber ich will nur mein Verständnis auf der Welt der JS und Versprechungen bestätigen.JS - dann und wartet auf ein Versprechen
So habe ich das folgende Code-Segment, das darin scheitert, dass der then
Block nicht wirklich auf das oben genannte Segment wartet, um beendet zu werden. Ich bekomme nämlich nicht den endgültigen/korrekten Wert von okCheck
.
var okCheck = false;
User.findOne({publicID: id}, function (err, userInfo) {
if (userInfo.checked.indexOf(id) > -1){
okCheck = true;
}
})
.then(function() {
//do some additional stuff using the boolean okCheck
}
So dies zu beheben - von dem, was ich verstehe, ich brauche eine return
zu verwenden - dies richtig ist?
Ist das korrekt - nämlich bin ich garantiert, dass ich immer den endgültigen Wert von okCheck haben werde?
Danke.
Die 'findOne'-Funktion sieht komisch aus: Aus Ihrem Code scheint ein Callback-Argument ** und ** ein Versprechen zurückzugeben. Beide Mechanismen dienen ungefähr demselben Zweck. Sie würden erwarten, dass die Funktion Callbacks ** oder ** Versprechungen verwendet. Sind Sie sicher, dass Sie es richtig anrufen? Können Sie überprüfen, ob sowohl Ihr Callback als auch Ihr 'then'-Handler aufgerufen werden (z. B. durch Hinzufügen eines' console.log() '-Aufrufs innerhalb dieser)? –
Das ist in Ordnung - ich habe eine console.log verwendet, um das zu überprüfen. Ich denke, die Antwort unten sieht gut aus - was denkst du> – userMod2
Aus den Antworten ergibt sich, dass diese bestimmte 'findOne' Funktion [Teil von Sails.js] (http://sailsjs.org/documentation) ist/Referenz/Wasserlinie-Orm/Modelle/Find-One). Es wäre viel klarer gewesen, wenn Sie erwähnt hätten, welche Bibliotheken Sie verwenden, damit andere nicht raten müssen, welche Funktionen Ihr Code verwendet. ;-) –