【问题标题】:undefined with promise async / awaitundefined with promise async / await
【发布时间】:2016-10-09 07:31:02
【问题描述】:

在使用 map 调用 promise 时,谁能告诉我代码有什么问题?我得到未定义的输出。 P.S 这是流星的。

async function getResUrl(item, url){

  let res = await HTTP.call("GET", url, function(err, res){
    return res.statusCode;
  });
  console.log(res);
  return res;
}

function getUrlRes(_screenName) {

  let getRes = Promise.all(_.map(Object.keys(social), function(item){
    let url = social[item]+"/"+_screenName;

    getResUrl(item, url);

  })).then(function(result){
    return result
  });

return getRes;
}

【问题讨论】:

  • 为什么使用_.map()而不是内置的.map()
  • getResUrl ... getUrlRes 你喜欢折磨阅读障碍者,不是吗。
  • HTTP.call 是否返回一个承诺,看起来它有一个回调,而你只是从那里返回?

标签: javascript meteor promise async-await


【解决方案1】:

假设 getResUrl() 返回一个承诺,改变这个:

getResUrl(item, url);

return getResUrl(item, url);

您必须返回承诺,以便map() 可以累积承诺。

看起来您可能还需要正确地承诺 HTTP.call() 以便它返回一个承诺。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-16
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    相关资源
    最近更新 更多