2017-01-05 3 views
0

私は私のステートメントの一部を返すわけではないと思われるエラーが表示されていますが、私はすべてを正しく行っていると思います。ここに警告があります:ブルーバードでプロミスが返されない

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 idは約束を返していない、これはそれを修正しませんでした。この

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

を試してみてください... – user1023465

関連する問題