javascript - 如何使“onload”等待“fetch”完成?
问题描述
长话短说,我将展示代码。
一些.html
<html><script src="some.js"></script></html>
一些.js
window.onload = () => console.log( "onload" );
(async (url, cb) => cb( await ( await fetch(url) ).json() ))
( "some.json", () => console.log( "in async" ) );
和 some.html 输出:
onload
in async
我已经完成了一些工作,例如在实际获取中加载图像,所以fetch().then()
对我不起作用。
现在我的问题正如标题所说,我怎样才能让“onload”等待“fetch”完成?
解决方案
我认为您要实现的是在 window.onload 之前开始获取,但是 onload 需要等待获取,然后再执行其他任何操作...
const promiseOfSomeData = fetch("some.json").then(r=>r.json()).then(data => {
console.log('in async');
return data;
});
window.onload = async () => {
let someData = await promiseOfSomeJsonData;
console.log("onload");
};
推荐阅读
- session - GCloud:恢复关闭的会话
- javascript - 限制用户在 React 输入字段的第一个字符中输入数字和字符
- python - 如何为不同长度的图设置相同的边距?
- flutter - 向上滑动以导航到主屏幕
- mysql - SQL计算列中具有相同值的行并按ID分组?
- javascript - 使用 JavaScript 按类选择服务器 .div 自动生成的每一个
- java - 在这个 Python 进程中找不到 `java` 命令。请确保已安装 Java 并为 `java` 设置了 PATH
- java - 从 Java URL 连接流式传输的部分内容
- reactjs - 使用 SSR 时初始化反应组件状态的最佳方法是什么?
- java - 线程“主”java.lang.IllegalArgumentException wsdl 中的异常