第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何通過promise/async-await返回Papa解析的CSV

如何通過promise/async-await返回Papa解析的CSV

楊__羊羊 2021-06-17 14:01:09
有人能幫我理解為什么這會(huì)返回一個(gè)掛起的承諾,而不是數(shù)據(jù)嗎?async function toJson (filepath) {  const file = fs.createReadStream(filepath)  let json = new Promise((resolve, reject) => {    Papa.parse(file, {      header: true,      complete (results, file) {        resolve(results)      },      error (err, file) {        reject(err)      }    })  })  let result = await json  return result.data}如果我將return result.data行更改為console.log(result.data),它會(huì)按預(yù)期將數(shù)據(jù)數(shù)組記錄到控制臺(tái)。為什么它不簡(jiǎn)單地返回那個(gè)數(shù)組?!?!
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

正如 Roamer-1888 在評(píng)論中添加的那樣,異步函數(shù)總是返回一個(gè)Promise,即使你await在它里面然后返回?cái)?shù)據(jù),它也會(huì)作為一個(gè) Promise 返回。


在函數(shù)的調(diào)用者中,您必須等待 Promise 或使用.then()它才能訪問傳遞的數(shù)據(jù)。


該toJson函數(shù)可以更好地編寫為僅返回這樣的 Promise


function toJson (filepath) {

  const file = fs.createReadStream(filepath)

  return new Promise((resolve, reject) => {

    Papa.parse(file, {

      header: true,

      complete (results, file) {

        resolve(results.data)

      },

      error (err, file) {

        reject(err)

      }

    })

  })

}

現(xiàn)在,當(dāng)您調(diào)用 時(shí)toJson(),您可以使用await異步函數(shù)或.then()返回的 Promise鏈來訪問數(shù)據(jù)。


async function main() {

  try {

    const data = await toJson(filepath)

    // do something with the data...

  } catch (err) {

    console.error('Could not parse json', err)

  }

}

或與 .then()


toJson('path')

.then(console.log)

.catch(console.log)

您將能夠從底層FileReader 中捕獲錯(cuò)誤(感謝reject在error函數(shù)內(nèi)部調(diào)用)。請(qǐng)記住,通過調(diào)用resolve與results.data您放在一邊results.errors并results.meta包含有關(guān)讀取 csv 的有用信息。


查看完整回答
反對(duì) 回復(fù) 2021-06-18
  • 1 回答
  • 0 關(guān)注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)