这样的事情会导致在调试器控制台中挂起的 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/