javascript - 使用 "debugger"时如何在 chrome 开发工具控制台中获得 promise 的结果?

标签 javascript asynchronous promise google-chrome-devtools javascript-debugger

这样的事情会导致在调试器控制台中挂起的 promise 。如果您删除调试器或等到第二个 console.log,您会得到一个结果,您可以在日志中单击打开。

<script>
import { Table } from 'apache-arrow';

async function loadData(dataUrl){
  const response = await fetch(dataUrl);
  return await response.arrayBuffer();
}

      console.log('loading data')
      let dataUrl = "https://raw.githubusercontent.com/RandomFractals/ChicagoCrimes/master/data/chicago-crimes-2017.arrow"
      let crimes = loadData(dataUrl).then(buffer => {return Table.from(new Uint8Array(buffer))})
      console.log(crimes)
      debugger
      console.log(crimes)
</script>

如何在调试器中解析 future 并在 REPL/console 中获取数据?

最佳答案

您无法解决 future ,但您可以在数据生成后立即获取数据:

import { Table } from 'apache-arrow';

async function loadData(dataUrl) {
    const response = await fetch(dataUrl);
    return await response.arrayBuffer();
}

console.log('loading data');
let dataUrl =
    'https://raw.githubusercontent.com/RandomFractals/ChicagoCrimes/master/data/chicago-crimes-2017.arrow';
let crimes = loadData(dataUrl)
    .then((buffer) => {
        return Table.from(new Uint8Array(buffer));
    })
    .then((tab) => {
        console.log(tab);
        return tab;
    });
</script>

这种方法的优点是您可以通过删除第二个 then 来摆脱控制台消息。

关于javascript - 使用 "debugger"时如何在 chrome 开发工具控制台中获得 promise 的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65263594/

相关文章:

javascript - 我无法让所有的 Javascript 计算一起工作以获得总计

javascript - 如何使用 jQuery 在加载页面后触发事件

c - I/O 多路复用中的写入 block 如何?

.net - DbConnection.Open() 有效,但 dbConnection.OpenAsync() 无效

javascript - 多个 Promise 请求在 Javascript 中链接在一起

javascript - 如何仅使 Ember 路线模型的一部分成为 promise ?

javascript - 如何获取可能定义或未定义的表格单元格的 Javascript 集合

javascript - 返回到动态大小页面上的滚动条位置

c# - 我可以等待我用生成器创建的可枚举吗?

javascript - 声明一个等待 promise 的函数