亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

If 和 Else 語句不適用于 API?

If 和 Else 語句不適用于 API?

慕村225694 2023-09-07 14:35:01
我有這個代碼顯示比特幣價格和基礎和其他東西,但我想讓它在數據到達之前(我將 setInterval 設置為 3 秒)它顯示“等待數據到達...”并在之后它到達時顯示“數據已到達!” (PS:我正在使用 Axios 庫)這是我的 HTML 和 JS HTML<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>JSON Test</title>    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script></head><body>    <h1 id="num"></h1>    <h1 id="num1"></h1>    <h1 id="num2"></h1>    <h1 id="num3"></h1>    <h1 id="num4"></h1>    <h1 id="num5"></h1>    <script src="zoom.js"></script></body></html>和JSconst num1 = document.getElementById("num1");const num2 = document.getElementById("num2");const num3 = document.getElementById("num3");const num4 = document.getElementById("num4");const num5 = document.getElementById("num5");const num = document.getElementById("num");if(num1,num2,num3,num4,num5.innerText.length > 0) {    num.innerText = `Data Arrived!`} else {    num.innerText = `Waiting for Data to Arrive...`}setInterval(() => {    const bitcoin = axios.get('https://api.cryptonator.com/api/ticker/btc-usd')    .then(res => {        num1.innerText = `${"Current Base"}, ${res.data.ticker.base}`         num2.innerText = `${"Current Currency"}, ${res.data.ticker.target}`        num3.innerText = `${"Current Bitcoin Price"}, ${res.data.ticker.price}`         num4.innerText = `${"Current Volume"}, ${res.data.ticker.volume}`         num5.innerText = `${"Current Change"}, ${res.data.ticker.change}`})     .catch(err => {        num1.innerHTML = `<strong>ERROR: Nothing found!<strong>`        num2.style.opacity = 0;        num3.style.opacity = 0;        num4.style.opacity = 0;        num5.style.opacity = 0;    })}, 5000);這是我嘗試過的方法,還是我的 If 和 Else 語句的語法有問題?if(num1,num2,num3,num4,num5.innerText.length > 0) {    num.innerText = `Data Arrived!`} else {    num.innerText = `Waiting for Data to Arrive...`}
查看完整描述

1 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

你有兩個主要問題。

逗號運算符并不像你想象的那樣

逗號運算符返回其右側的所有內容。if (a,b)意思與 相同if (b)

如果您想測試num1.innerText.length > 0AND 相同的 fornum2等等,那么您必須測試它們的所有長度,并使用運算&&符而不是運算符,

盡管您可以做一個快捷方式,編寫一個函數來對數組中的每個事物進行測試,然后測試它們是否都正常。

if (![num1, num2, num3, num4, num5].some(
    element => element.innerText.length === 0
    )) {

if聲明不具有追溯力

您在計劃開始時測試您的狀況。

然后你開始進行間歇訓練

稍后,間隔會更改值,因此if語句將過去

...但您不再運行該if語句。

您對元素所做的更改不會及時返回到執行測試時的時間if。

您需要在更改元素后進行該測試。

然而這是沒有意義的。您可以一次性設置所有值,并且您知道何時設置它們。

您可以將其硬編碼 Waiting for Data to Arrive…到 HTML 中,然后在替換其他元素的Data Arrived同時將其替換為 。innerText


查看完整回答
反對 回復 2023-09-07
  • 1 回答
  • 0 關注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號