質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Chrome extension

Chrome拡張機能

受付中

async/awaitでasync functionのfunctionに対してunexpected tokenのエラーがでる

TarouKotani
TarouKotani

総合スコア42

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Chrome extension

Chrome拡張機能

2回答

0リアクション

0クリップ

12754閲覧

投稿2018/03/08 05:47

firebaseを利用したサーバサイドの開発をしており、非同期処理を同期的に直す過程でエラーが出ました。

データをajaxで受け取る→それをfirebaseのデータベースと突合→合致する場合はresponse(500)を帰す
というバックエンドの処理をしようとしています。

「データを格納→完了後に突合」としたく、async/awaitの非同期処理の最後の例にならって、
promise,async,awaitを用いた非同期処理の待ちを実装しましたが、下記のエラーが出ます。

65:9 error Parsing error: Unexpected token function

node.js

/////////////////////////////////////////index.js////////////////////////////////// const functions = require('firebase-functions'); // // Create and Deploy Your First Cloud Functions // // https://firebase.google.com/docs/functions/write-firebase-functions // The Firebase Admin SDK to access the Firebase Realtime Database. // Import Admin SDK const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); // Get a database reference to our posts var db = admin.database(); var ref = db.ref("/product"); //chromeExtensionからのデータを受信 exports.product = functions.https.onRequest((request, response) => { //POSTを受けると発火 if (request.method === "POST") { const body = request.body; const pushRef = admin.database().ref("/product").push(); pushRef.set({ //薬処方時のデータ patientId: body["patientId"], doctor: body["doctor"], idisease: body["idisease"], medicine: body["medicine"], medicineID:body["medicineID"], }, error => { if (error) { console.log("save error", error.message); } else { console.log("save Success!!"); } } ); }//ajaxの受け取り ////////////////////////////////////////////////////////////////////  問題個所はここ以降 //medicineIDを薬マスタと突合 //薬のIDを配列に格納 function getInMedId() { const p = new Promise((resolve,reject) => { var inMedId = body.medicineID; resolve(inMedId); }); return p; } //マスター側の薬のIDを配列に格納 function getPreMedId() { const q = new Promise((resolve,reject) => { var preMedId = []; for(j=0; j<(90+1); j++){ var m = db.ref("/"+j+"/medicineId"); m.on("value", function(snapshot){ preMedId = snapshot.val(); }); } resolve(preMedId); }); return q; } //薬のIDを突合 async function checkMedId() { <============================================ ※エラー箇所※ for(i=0; i<inMedId.length+1; i++){ for(j=0; j<(90+1); j++){ var a = await getInMedId(); var b = await getPreMedId(); if(a[0][i] === b[j]){ console.log('This medicine is skeptical:'+a); response.status(500).send(error.message).end(); } } } } checkMedId(); //for回して無事だったら普通のレスポンス response.status(200).end(); })

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Chrome extension

Chrome拡張機能