我在Redis中有一組電影ID:[1,2,3,4]
和一組具有實際數據的散列。現在,我想一次獲取所有ID的電影數據。如何從嵌套的諾言中返回值?
我想使用藍鳥promisses,但我卡住了。到目前爲止,我有:
function allMovies() { var movies, movieIds; return client.smembersAsync('movies.ids').then(function(ids) { movieIds = ids; movies = _.map(movieIds, function(id) { var movie; return client.hmgetAsync("movies:" + id, 'title', 'description', 'director', 'year').done(function(data) { movie = data; return { title: data[0], description: data[1], director: data[2], year: data[3] }; }); return movie; }); })
的問題是從我試試,我總是得到一個新的承諾,而我只是感興趣的一個JSON的所有操作完成之後。
這裏的任何人都可以對此有所瞭解嗎?
嗯..地圖似乎沒有工作。我得到: – poseid
{isFulfilled:true, isRejected:false, fulfillmentValue:[], rejectReason:undefined} – poseid
@poseid你如何使用'allMovies()'函數?如果你像'allMovies()。然後(函數(電影){console.log(電影)})'使用它,那麼這是一個嚴重的錯誤。但是,它確實看起來像你正在使用它像'console.log(allMovies())' - 該函數不會返回電影,它會返回電影承諾。 – Esailija