Javascript:Promise.all 似乎没有解决

标签 javascript promise es6-promise

<分区>

我正在尝试使用 feedparser-promised 映射一些 RSS 提要,但我对 Promise.all() 的调用没有返回任何内容。 (var 的使用来 self 的 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 未定义,因为 getAllFeedsarrow function with statement body没有显式返回

您应该返回 Promise.all promise 并在 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);
  })

关于Javascript:Promise.all 似乎没有解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33631475/

相关文章:

javascript - 如何使用 `requires` 重置类原型(prototype)

javascript - Promise 的 .then() 不接受分配给变量的函数?

javascript - Promise.all 解决得太早

javascript - es6 promise swallow 类型错误

javascript - 同步 promise 行动

javascript - 从ajax加载页面时如何避免js函数被覆盖。

javascript - 如何只触发一个复选框检查操作

php - Facebook JS SDK 返回 XSS 错误和 "user_denied"响应,而不在 FB.Login 上显示身份验证弹出窗口

javascript - 并行 promise 链,其间具有顺序动态内容

javascript - Angular : Promise dependant on other promises in routing