javascript - how to correctly use promises to return 2 different results -
this question has answer here:
i trying use promises in javascript using es6 return data 2 methods object, in production call out endpoint.
my movieapi
object have 2 promises want return firstly list of movies, , 1 movie id. want use promises avoid callback hell. following approach listed answer question arent promises callbacks doing wrong, have error findmovie not defined
let moviedata = [ { id: '1011', name: 'gleaming cube', year: "1989" }, { id: "1012", name: "airborne", year: "1989" } ] let movieapi = { findmovie: function(id) { return new promise(function(resolve, reject) { if(id === undefined) reject(error('incorrect movie id')); let movie = '' (let m of moviedata) { if (m.id.tolowercase() === id.tolowercase()) { movie = m break } } resolve(movie) }); }, findallmovies: function() { return new promise(function(resolve, reject) { if(moviedata === undefined) reject(error('could not find movies')) resolve(moviedata) }); } }
call movie promise this... error trying call second .then()
method
movieapi.findallmovies() .then( function (movies){ return findmovie(req.params.id) }).then(function(movie){ let moviestore = { movie: movie, movies: movies } }).catch(function(error) { console.error("failed!", error); });
is there way out of callback hell here, or have make call movieapi object, having same readability issue if using callbacks.
the problem return findmovie(req.params.id)
, findmovie
property of movieapi
object so
movieapi.findallmovies() .then( function (movies){ return movieapi.findmovie(req.params.id) })
demo: fiddle
Comments
Post a Comment