2017-01-05 3 views
0

Я получаю сообщение об ошибке, которое, кажется, говорит о том, что я не возвращаю некоторые из своих утверждений, но я думаю, что я делаю все правильно. Вот предупреждение:Promise не возвращено предупреждение в Bluebird

Warning: a promise was created in a handler at /src/api/podcasts.js:51:18 but was not returned from it 

Это код функции в вопросе:

'findPodcastById': (db, podcastId, callback) => { 
 
    var queryString = "SELECT * FROM podcasts WHERE id=$1;"; 
 
    db.one(queryString, [podcastId]) 
 
     .then((result) => { 
 
     return callback(null, result); 
 
     }) 
 
     .catch((err) => { 
 
     return callback(err, null); 
 
     }); 
 
    },

И родительская функция, она вызывается из:

app.post('/getepisodes', (req, res, next) => { 
 
    var podcastId = req.body.podcastId; 
 
    var userId = req.body.userId; 
 
    var podcast; 
 
    podcasts.findPodcastByIdAsync(db, podcastId) 
 
    .then((result) => { 
 
     podcast = result; 
 
     return request(podcast.rss); 
 
    }) 
 
    .then((result) => { 
 
     return podcastParser.parseAsync(result, {}) 
 
    }) 
 
    .then((result) => { 
 
     return Promise.resolve(result.channel.items); 
 
    }) 
 
    .map((item) => { 
 
     var date = new Date(item.pubDate).toLocaleString(); 
 
     return podcasts.addEpisodeAsync(db, podcast.id, item.title, item.enclosure.url.split('?')[0], striptags(item.description), date, item.duration); 
 
    }) 
 
    .map((episode) => { 
 
     return posts.addPostAsync(db, 'podcast', episode.id, episode.title, episode.description); 
 
    }) 
 
    .then(() => { 
 
     return podcasts.findEpisodesByPodcastIdAsync(db, podcastId, userId); 
 
    }) 
 
    .then((result) => { 
 
     return res.json(result); 
 
    }) 
 
    .catch((err) => { 
 
     next(err); 
 
    }); 
 
});

У меня есть заявление о возврате в каждом блоке обещания, поэтому я не уверен, что я делаю неправильно, я бы очень признателен за помощь!

ответ

0

findPostCastBy идентификатор не возвращается обещание, попробуйте этот

'findPodcastById': (db, podcastId) => { 
    return db.one("SELECT * FROM podcasts WHERE id=$1;", [podcastId]) 
} 
+0

Это не исправить ... – user1023465

 Смежные вопросы

  • Нет связанных вопросов^_^