为什么async / await变量返回undefined?

时间:2017-10-12 17:09:11

标签: javascript ecmascript-6 async-await

以下是我的代码......

async function getItemDetalil(url) {
  const $ = await request(url, (err, res, body) => {
      return cheerio.load(body);
  });
  console.log($);
}

为什么我的' $'未定义? 我认为这将是一个cheerio对象?

1 个答案:

答案 0 :(得分:1)

  

为什么async / await变量返回undefined?

await x计算x的值,或者,如果该值是承诺,则计算承诺解析为的值。

示例:

// Value
(async function() {
  console.log('Normal value', await 42);
}());

// Promise resolution
(async function() {
  console.log('From promise:', await Promise.resolve(42));
}());

如果$undefined,则request()会返回undefined或解析为undefined的承诺(不太可能)。查看其文档或源代码,了解究竟发生了什么。

  

我认为这将是一个cheerio对象?

只有cherrio对象 iff request实际返回一个cherrio对象或一个解析为cherrio对象的承诺。

How do I convert an existing callback API to promises?可能会帮助您解决实际的编码问题。