Hier ist mein Code:Bluebird Promises returns "undefiniert", wenn Rückkehr nach innen "und dann" Funktion
prüft Benutzer offiziellen Twitter Account ist Folowing (hier habe ich neue Versprechen zurück
var isFollowing = function(sender) {
return new promise(function(resolve, reject) {
var following = false;
var params = {
source_id: sender,
target_screen_name: config.get('twitter.official_account')
};
TwitObj.get('friendships/show', params, function(err, data) {
if (!err) {
following = data.relationship.source.following;
resolve(following);
} else {
reject(err);
}
});
});
};
Validierung:
var validateMsg = function(dm) {
var sender = getSender(dm);
var result = [];
isFollowing(sender.id)
.then(function(response) {
if (!response) {
result = interactiveMessage(false, lang.__('FOLLOW_MAIN', sender.name));
console.log(result); // Displays as expected
return result; // Not returning value Do I need to return promise again? If yes, WHY?
}
});
};
Haupt Umsetzung :
var direct_message = function(msg) {
verifyAccount().catch(function(err) {
console.error(err);
});
var dm = msg.direct_message;
var result = validateMsg(dm);
console.log(result);
};
Fragen ist, wie soll ich validateMsg Funktion zwingen result
Variable innerhalb then
Funktion zurückzukehren.
Update: Während des Debuggens, erfuhr ich, dass,
console.log(response)
in Validierungsfunktion in undefined werfen später nach anzeigt „dann“ Funktion, die Programmmittel nicht in der Lage ist Antwort zu erhalten sofort und aufgrund Asynchronität, E/A wird nicht blockiert. Wie dies anzugehen?
interessant aussieht. Ich glaube, ich habe dich verwirrt, indem ich all meinen Code zur Verfügung gestellt habe. Lassen Sie mich meine Frage überarbeiten und zu Ihnen zurückkommen :) Vielen Dank für Ihre Hilfe! –
Keine Notwendigkeit !! Ihre Lösung Arbeitete wie Charme! Ich habe gerade ein weiteres Versprechen innerhalb der validateMsg-Funktion zurückgegeben. Danke für deine Bemühungen, Kumpel !!! –
:) Ich empfehle ein wenig über einige vielversprechende Muster zu lesen. Ich empfehle diesen Artikel von @nolanlawson https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html – leesio