Javascript: Promise.all 似乎没有解决
Javascript: Promise.all doesn't seem to be resolving
我正在尝试使用 feedparser-promised
映射一些 RSS 提要,但我对 Promise.all()
的调用没有返回任何内容。 (var
的使用来自我的 REPL,它不支持 const
或 let
)
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);
})
我正在尝试使用 feedparser-promised
映射一些 RSS 提要,但我对 Promise.all()
的调用没有返回任何内容。 (var
的使用来自我的 REPL,它不支持 const
或 let
)
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);
})