私はレディスで映画のIDのセットを持っています:[1,2,3,4]
と実際のデータを持つハッシュのセット。今、IDのすべてのムービーデータを一度に取得したいと思います。ネストされた約束から値を返す方法は?
私はブルーバードの約束を使用しようとしていますが、私は立ち往生しました。これまでのところ、私が持っている:
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でちょうど興味を持っていながら、私は常に、新しい約束を取り戻すことを、私がしようとするものです。
誰もがこれにいくつかの光を当てることができますか?
を参照してください.hmm ..マップが機能していないようです。私は得る: – poseid
{isFulfilled:true、 isRejected:false、 fulfillmentValue:[]、 rejectionReason:未定義} – poseid
@spellid'どのように 'allMovies()'関数を使いますか? 'allMovies()。(function(movies){console.log(movies)})'のように使っているのなら、それは深刻なバグです。しかし、あなたが 'console.log(allMovies())'のように使用しているように見えます。この関数は映画の約束を返すムービーを返しません。 – Esailija