pos*_*eid 5 redis node.js promise bluebird
我在Redis中有一组电影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感兴趣.
这里的任何人都能对此有所了解吗?
Esa*_*ija 13
在蓝鸟中,有一种更含糖的方式:
function allMovies() {
return client.smembersAsync("movies.ids").map(function(id){
return client.hmgetAsync( "movies:" + id, 'title', 'description', 'director', 'year');
}).map(function(data){
return {
title: data[0],
description: data[1],
director: data[2],
year: data[3]
};
});
}
Run Code Online (Sandbox Code Playgroud)