Ich würde sagen, ich bin ein Anfänger Übergang in Zwischenprogrammierer und ich verstehe nicht vollständig Verschlüsse sowie verschachtelte Funktionen mit Rückgabewerten. Ich habe etwas gelesen und kann mich nicht wirklich darum kümmern.Verschachtelte Funktionen in Javascript mit einem Rückgabewert
Der folgende Code gibt nur undefined zurück. Ich gehe davon aus, dass dies eine verschachtelte Funktion ist, aber ich bin mir nicht sicher, wie ich es beheben kann.
var Twit = require('twit');
var request = require('request');
var T = new Twit({
consumer_key: 'Removed for security reasons',
consumer_secret: 'Removed for security reasons',
access_token: 'Removed for security reasons',
access_token_secret: 'Removed for security reasons',
});
var stream = T.stream('statuses/filter', {track: '#instagram'});
stream.on('tweet', function(tweet){
if(!tweet.entities.media){
console.log("No photo here");
}else{
var imageUrl = JSON.stringify(tweet.entities.media[0].media_url).replace(/^"(.*)"$/, '$1');
console.log(describeImage(imageUrl) + " - " + imageUrl);
}
});
function describeImage(imageUrl){
var options = {
url: "https://api.projectoxford.ai/vision/v1.0/describe?maxCandidates=1",
json: {url: imageUrl},
method: 'POST',
headers: {
'Content-type' : 'application/json',
'Ocp-Apim-Subscription-Key' : 'Removed for security reasons'
}
}
request(options, function(err, res, body){
if(err){
console.log(err);
}
//This is where I'm going wrong.
return JSON.stringify(body.description.captions[0].text);
});
}
Jede Hilfe wäre wunderbar!
'request' ist asynchron machen' describeImage' asynchron, aber sie versuchen, um es synchron zu benutzen. Schauen Sie sich Versprechungen (Bluebird) oder Rückrufe an. – Wainage