##概要
ユーザースクリプトとして、Chromeのデベロッパーツール上で実行する前提です。
コード内容は、Web上のTableからデータを取得し、API(GAS)を通してスプレッドシートで書き込む形になります。
##コード
async function testfunc(){ var tables = $('table.mt-table:eq(0) > tbody > tr') $(tables).each((i,v)=>{ var obj = JSON.parse($(v).attr('data-row-data')) var asin = obj.asin; var brand = 'hoge' var name = obj.title.slice(0,40) var postFrom = 'ユーザー1' var data = '{\"Name\":\"'+name+'\",\"Brand\":\"'+brand+'\",\"ASIN\":\"'+ asin + '\",\"From\":\"'+ postFrom + '\"}'; var url = 'https://script.google.com/macros/s/hogehoge/exec'; await fetch(url, { // Error method: 'POST', mode: "no-cors", headers: { 'Accept': 'application/json' }, body: data }).then((response) => { console.log(asin,'完了') }) }) } testfunc();
##抱えてる問題
eachループ内のfetchメソッドが非同期通信の為、全てのデータ送信前にコードが終了してしまい、全てのデータが送信されません。
そこで 下記のようにasyncとawaitを追加しましたが、「Uncaught SyntaxError: await is only valid in async function」をなってしまいます。
async function testfunc() await fetch
アドバイスお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/04 04:16