Javascript: Promise.all 似乎没有解决

Javascript: Promise.all doesn't seem to be resolving

我正在尝试使用 feedparser-promised 映射一些 RSS 提要,但我对 Promise.all() 的调用没有返回任何内容。 (var 的使用来自我的 REPL,它不支持 constlet

var feedparser = require('feedparser-promised');
var R = require('ramda');
var URLS = ['http://feeds.gawker.com/gizmodo/full',
            'http://kotaku.com/vip.xml',
           'http://www.medievalhistories.com/feed/'];

var getAllFeeds = (urls) => {
    promises = R.map(feedparser.parse, urls);
    Promise.all(promises)
        .then((itemArrs) => itemArrs)
        .catch((err) => {throw new Error(err)});
}

var x = getAllFeeds(URLS);
console.log(x);

x 返回 undefined。如果我在 promises 上登录,它会按预期显示为 Promises 数组。我错过了什么?

x 未定义,因为 getAllFeeds 是一个 arrow function with statement body,它没有明确地 return.

您应该 return Promise.all 承诺并使用 then/catch 处理程序中的结果:

var getAllFeeds = (urls) => {
    var promises = R.map(feedparser.parse, urls);
    return Promise.all(promises)
}

getAllFeeds(URLS)
  .then(items => {
    console.log(items);
  })
  .catch(err => {
    console.error(err);
  })