javascript - 等待结果的调用方法 - 中间值尚未解析

标签 javascript node.js asynchronous async-await

假设我有一个 await 表达式,它应该返回一个数组,如下所示:

let prompts = (await requestp('get', `${cdtAPIUrl}/prompts`, headers)).slice(0, 3);

但是,我得到了这个错误:

TypeError: (intermediate value).slice is not a function

有没有办法在“中间值”上调用某些东西,或者我应该这样做:

  let $prompts = await requestp('get', `${cdtAPIUrl}/prompts`, headers);
  let prompts = $prompts.slice(0,3);

最佳答案

这是一条奇怪的错误消息,但@Bergi 是正确的 - 等待表达式返回的结果不是数组,这就是运行时出错的原因。

例如:

let val = (await 4).slice(x);

会给你原始问题的错误。

鉴于:

let val = (await []).slice(x);

应该可以正常工作。

关于javascript - 等待结果的调用方法 - 中间值尚未解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45950413/

相关文章:

javascript - 有没有一种简单的方法将复杂的 JS 对象转换为查询参数?

javascript - 可以在页面处理之前修改传入数据的 Firefox 插件?

ios - React native 错误 AppRegistry 未定义?

c# - 如何同步任务?

c# - 如何将 AsParallel 与 async 和 await 关键字一起使用?

javascript - 如何在 React 中使用 Flow 类型?

javascript - ng-show 不适用于 $scope

node.js - 如何使用 ReSTler Rest 客户端库而不是 Angular/HTTP

node.js - 如何将 Node.js 命令行应用程序转换为单个可执行文件?

javascript - 所有异步 forEach 回调完成后的回调