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

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

將數(shù)據(jù)異步寫入承諾內(nèi)的 GCS

將數(shù)據(jù)異步寫入承諾內(nèi)的 GCS

拉丁的傳說 2022-09-02 20:58:36
我試圖找到一種方法,將json數(shù)據(jù)寫入Google Cloud Storage存儲(chǔ)桶中的文件,在承諾內(nèi)。我發(fā)現(xiàn),如果我嘗試將值逐個(gè)推送到數(shù)組,然后返回,它只給我數(shù)組的前3個(gè)結(jié)果(而控制臺(tái).log將返回所有內(nèi)容)。如果我嘗試在本地范圍內(nèi)編寫一些東西,它只返回?cái)?shù)組中的最后一個(gè)值(并覆蓋所有以前的值而不是附加它們)。因此,從本質(zhì)上講,我的問題是:有沒有辦法編寫一個(gè)承諾或類似的東西來等待所有循環(huán)值被收集起來,一旦完成,就將這些值返回到一個(gè)函數(shù),然后該函數(shù)將其全部上傳到GCS?或者,有沒有辦法在抓取數(shù)據(jù)的同時(shí),將這些值異步寫入GCS中的.json文件?const urls = [/* 20+ URLs go here... */];let promises = [];// Build array of Promisesurls.map(function(url) {  promises.push(axios.get(url));});// Map through the array of promises and get the response resultsaxios.all(promises).then((results) => {  results.map((res) => {    try {      // Scrape the data      const $ = new JSDOM(res.data);      const data = {};      data.title = ($.window.document.querySelector('head > title') !== null ? $.window.document.querySelector('head > title').text : '');      data.description = ($.window.document.querySelector("meta[name='description']") !== null ? $.window.document.querySelector('meta[name="description"]').content : '');      data.robots = ($.window.document.querySelector("meta[name='robots']") !== null ? $.window.document.querySelector("meta[name='robots']").content : '');      const value = JSON.stringify(data) + '\n';      // Tried array.push(value) here but doesn't return all the values?      // Any way to return all the values and then bulk upload them to GCS outside of this code block?      const file = storage.bucket(bucketName).file(filename);      file.save(value, function(err) {        if (!err) {          // file written        }      })    } catch(e) {      console.log(e);    }  })})很抱歉解釋得很差,基本上我不能將所有值推送到一個(gè)數(shù)組,然后上傳它,如果我嘗試逐個(gè)上傳值,我只得到循環(huán)數(shù)組中的最后一個(gè)值。注意:我不會(huì)嘗試使用fs.writeFile()將數(shù)據(jù)保存到本地的.json文件中,然后上傳到GCS,而是將JSON數(shù)據(jù)直接發(fā)送到GCS,而無需中間的步驟。
查看完整描述

1 回答

?
四季花海

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

如果我正確地理解了你需要什么,它應(yīng)該工作


axios.all(promises).then((results) => {

  const uploads = results.map((res) => {

    try {

      // Scrape the data

      const $ = new JSDOM(res.data);

      const data = {};


      data.title = ($.window.document.querySelector('head > title') !== null ? $.window.document.querySelector('head > title').text : '');

      data.description = ($.window.document.querySelector("meta[name='description']") !== null ? $.window.document.querySelector('meta[name="description"]').content : '');

      data.robots = ($.window.document.querySelector("meta[name='robots']") !== null ? $.window.document.querySelector("meta[name='robots']").content : '');


      const value = JSON.stringify(data) + '\n';


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

       const file = storage.bucket(bucketName).file(filename);

       file.save(value, function(err) {

         if (!err) {

           resolve()

         }

         reject()

       })

      });



    } catch(e) {

      console.log(e);

    }

  })

  return Promise.all(uploads);

})


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

添加回答

舉報(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)