var TheMovieDb = require('themoviedb');
var moviedbClient = new TheMovieDb('*****');
var movieJson = require("./seedMovieDB/movieName.json");
var MovieEntry = require('./movie.model');
var movieApi = new TheMovieDb('1b3819c5f61aaef99edf4c47a5de46f4', 'en');
var P = require('bluebird');
var _ = require('underscore');
var moviedb = module.exports = {
indexMovie : function indexMovie(){
MovieEntry.removeAsync({})
.then (function() {
_.each(movieJson, function(val, key, cb){
movieApi.searchMovies(val.name).then (function(mDetails) {
if(mDetails !== undefined){
_.each(mDetails , function(val, key, cb){
var m = new MovieEntry({
id: val.id,
title : val.title,
originalTitle : val.originalTitle,
year : val.year,
popularity : val.popularity,
voteAverage : val.voteAverage,
votes : val.votes,
isAdult : val.isAdult,
video : val.video,
poster : val.poster,
backdrop : val.backdrop,
});
m.save(function(err, movie_saved){
if(err){
console.log(err);
}else{
console.log("saved");
}
});
})
}
}).catch(function(err){
if(err){
console.log(err);
}
});
});
});
}
我想回到一個承諾或什麼的,這將確保一旦我所有的電話每一個,那就是取得了ASYN searchMovie電話,都是過來,然後我可以使用.then()從數據庫中檢索我存儲在代碼中的東西。 我是新承諾,不知道如何做到這一點。 我有一個調用indexMovie函數的控制器,一旦調用結束,我想從數據庫中檢索保存的值。
您可以使用Promise.All API,這已經是這些情況的標準。而不是你的解決方案。 – Nirus
@Nirus:OP是專門詢問藍鳥的,這沒有什麼錯 – Bergi