【发布时间】:2018-05-01 14:34:58
【问题描述】:
我有一个函数可以通过request-promise 向服务器发出多个请求:
query = function(entity) {
//some SPARQL request here with the "entity" parameter
rp(url)
.then(function(res) {
console.log(res)
return new Promise(resolve => res)
})
.catch(function(err) {
console.log("error")
})
}
async function musicData() {
data = [1,2,3,4]
var queries = data.map(query)
var results = await Promise.all(queries)
return results
}
musicData()
.then(function(resp) {
console.log(resp);
})
.catch(function(err) {
console.log("err")
})
我不明白为什么musicData() 返回一个undefined 值的数组。考虑到query() 中的console.log(res) 记录了正确的响应,我该如何让它返回承诺?
【问题讨论】:
-
将查询函数改为 query = async function($... 然后再试一次:)
-
@Kai 没用。
-
我怀疑
return new Promise(resolve => res)确实返回任何东西 -
@Bergi 它返回一个永远不会解决的承诺。
-
@JLRishe 是的,这就是我的意思。所以
musicData()永远不应该解析为任何东西的数组。
标签: javascript node.js asynchronous promise