我知道您不能使异步函数同步运行,但是如何向我的promise链添加某种顺序?
一个结果依赖于先前的promise值,当不发生时,我得到一个未定义的错误。这是一个http请求,因此它依赖于外部因素,例如我的连接执行请求的速度等。
module.exports.movieCheck = function(authToken) { return request({ method : 'GET', uri : 'https://graph.facebook.com/' + profileID + '/posts?fields=message&limit=25&' + authToken }).spread(function (response, body) { console.log('https://graph.facebook.com/' + profileID + '/posts?fields=message&limit=25&' + authToken); return body; }, function(e) { console.log(e); }); };
我正在按以下方式调用上述方法。但是console.log返回未定义。
movieCheck.getToken() .then(function(token) { movieCheck.movieCheck(token); }) .then(function(movies) { console.log(movies); //should print json data });
终端打印
undefined https://graph.facebook.com/.../posts?fields=message&limit=25&access_token=....
尝试从第一个然后回调的返回promise
movieCheck.getToken() .then(function (token) { return movieCheck.movieCheck(token); }).then(function (movies) { console.log(movies); //should print json data });