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

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

如何在 OOP 中使用 fetch?

如何在 OOP 中使用 fetch?

陪伴而非守候 2023-11-11 21:26:59
我想開始學習 OOP 并使用 fetch 來獲取信息。但我在班級之間的溝通上遇到了困難。我無法將信息獲取到另一個類中以進行進一步處理。我的代碼Fetch.jsclass Fetch  {    constructor(data) {        this.data = data;    }    async fetchData(path) {        const res =  await fetch(path)        const { status } = res;        if (status <  200  || status >=  300) {            return  console.log("Oh-Oh! Seite konnte nicht gefunden werden: " + status)        }        this.data = res.text();    }}export  default Fetch;Day08.js1  | import Fetch from "./Fetch.js";2  | 3  | class Day08 extends Fetch  {4  |    constructor() {5  |        super(data);6  |        this.doSomething();7  |    }8  | 9  |   doSomething() {10 |    console.log(this.data)11 |    }12 | }13 | 14 | new Day08();data is not defined在我的控制臺中,我在 Day08 的第 6 行得到了這一點。問題所以我的問題是,如何使用從獲取中獲得的數據?我也嘗試doSomething()以不同的方式編寫我的代碼,如下所示:doSomething() {    const fetching =  new  Fetch.fetchData("./Inputs/08-data.txt");    console.log(fetching)}但后來我也發現數據未定義。我不知道如何獲取這些信息并在不同的班級中使用它,我試圖在網上尋找答案,但找不到答案。每次獲取的輸入都會發生變化,以獲取不同的數據。這就是為什么我試圖避免使我的 Fetch 類具有靜態返回。如果有人能幫助我解決這個問題,那就太好了。
查看完整描述

2 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

如果您希望能夠使用從該類獲取的其他類中的數據,Fetch而不是因為該fetchData調用是異步的,則必須在異步調用以異步方式完成后調用所有將使用該數據的代碼。


class Fetch {

  async fetchData(path) {

    const res = await fetch(path)


    const {

      status

    } = res;


    if (status < 200 || status >= 300) {

      return console.log("Oh-Oh! Seite konnte nicht gefunden werden: " + status)

    }


    this.data = await res.text();

  }

}


class Day08 extends Fetch {

  constructor(path) {

    super()

    this.path = path;

  }


  async init() {

    await this.fetchData(this.path);

  }


  doSomething() {

    console.log('Something', this.data)

  }


  doSomethingElse() {

    console.log('Else ', this.data)

  }

}


const day = new Day08('https://jsonplaceholder.typicode.com/todos/1')


day.init().then(() => {

  day.doSomething();

  day.doSomethingElse();

})


查看完整回答
反對 回復 2023-11-11
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

似乎問題是 Day08 的構造函數必須有數據參數


constructor(data) {

   super(data);

   this.doSomething();

}



查看完整回答
反對 回復 2023-11-11
  • 2 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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