我尝试使用 fetch 将计算机中的 markdown 文件显示到浏览器窗口,但响应(文本)未定义,为什么会发生这种情况?我留下了一个带有我的代码的密码笔。
https://codepen.io/matiasConchaSoto/pen/popvQgp
<main>
<h1>Blog con Markdown y ShowDown</h1>
</main>
<script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/2.0.3/showdown.min.js"></script>
<script>
const d = document,
$main = d.querySelector("main");
fetch("./assetsPropios/javascript.md")
.then(res => {
console.log(res);
res.ok ? res.text() : Promise.reject(res);
})
.then(text => {
console.log(text);
$main.innerHTML = text;
})
.catch(err => {
console.log(err);
let message = err.statusText || "Ocurrió un error";
$main.innerHTML = `Error ${err.status}: ${message}`;
});
</script>
请有人帮助我。
第一个
.then()
缺少 return
。
尝试:
return res.ok ? res.text() : Promise.reject(res);
更好的是:
if(res.ok) {
return res.text();
} else {
throw new Error(res.statusText); // or some message of your own choice.
}