javascript - 为什么 async/await 变量返回未定义?

标签 javascript ecmascript-6 async-await

下面是我的代码...

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

为什么我的“$”未定义? 我认为它将是一个 Cheerio 对象?

最佳答案

Why async/await variable return undefined?

await x 计算为 x 的值,或者,如果该值是一个 Promise,则计算为 Promise 解析为的值。

示例:

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

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

如果$undefined,那么request()要么返回undefined,要么返回一个解析为未定义(不太可能)。查看其文档或源代码以了解到底发生了什么。

<小时/>

I assume it will be a cheerio object?

它只会是 cherrio 对象iff request 实际上返回一个 cherrio 对象或解析为 cherrio 对象的 Promise。

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

关于javascript - 为什么 async/await 变量返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46715291/

相关文章:

javascript - Web 通知 API - 每个周期仅显示一次

javascript - 从构造函数 es6 调用静态方法

javascript - 非返回异步方法

c# - 将异步方法的执行推送到线程池线程

javascript - 如何使用 t-extend 添加新按钮?

没有单元测试的 JavaScript 覆盖率

javascript - graphql查询转json查询

javascript - 状态未使用 Redux 更新

javascript - 初始全局执行上下文是否曾经从 JavaScript 的调用堆栈中弹出?

javascript - JS async (async/await) 返回 Promise 但也执行函数