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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Firebase

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

JavaScript

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

Q&A

0回答

1729閲覧

【JavaScript(Vue.js)】PromiseResultの中身を変数として保存したい

DKI

総合スコア11

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Firebase

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

JavaScript

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

0グッド

0クリップ

投稿2021/04/17 15:01

課題

現在console.logの結果がPromissで返ってきてしまっている。
こちらを変数に保存できるように設定したい

javascirpt

1 const self = this; 2 this.db = firebase.firestore() 3 this.db.collection("posts") 4 .where("word", "==", text) 5 .orderBy("createdAt", "asc") 6 .get() 7 .then((query) => { 8 var buff = []; 9 query.forEach((doc) => { 10 var data = doc.data(); 11 buff.push([doc.id, data]); 12 }); 13 var sentence1 = buff[0][1].sentence 14 var sentence2 = buff[1][1].sentence 15 var sentenceAll= [] 16 sentenceAll.push(sentence1) 17 sentenceAll.push(sentence2) 18 19 self.sentenceArray = sentenceAll 20 console.log("test1",self.sentenceArray); 21 22 }) 23 .catch((error)=>{ 24 console.log(`データの取得に失敗しました (${error})`); 25 }); 26 27 console.log("test2",self.sentenceArray); 28 29 });

javascript

1 data() { 2 return { 3 sentenceArray: [] 4 }; 5 },

現在firebaseからデータをとってくる処理をしたいのですが、sentenceArrayの中身をコンソールで表示すると、promiseResultと表示されてしまいます。

javascirpt

1Promise {<pending>} 2__proto__: Promise 3[[PromiseState]]: "fulfilled" 4[[PromiseResult]]:

調べたところ、.thenで書いている中のデータが非同期処理されているので、このままでは変数に代入できないみたいです。
こちらでは正しく表示されるが、

jaavascript

1console.log("test1",self.sentenceArray);

test2だと

console.log("test2",self.sentenceArray);

javascirpt

1Promise {<pending>} 2__proto__: Promise 3[[PromiseState]]: "fulfilled" 4[[PromiseResult]]:

こちらの結果が返ってきます。

test2のコンソールでも[[PromiseResult]]を返さずに通常通りデータを表示させる方法が知りたいです。

わかる方いたら回答をお願いいたします。

参考

https://knews.vip/q/so77162792/promise-result-o-hensu-toshite-hozonsuru-hoho-wa-arimasu-ka-fukusei

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問