🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

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

コールバック

コールバックは他のコードに引数として渡されるコードのことを指します。

非同期処理

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

Q&A

解決済

1回答

549閲覧

【Vue.js】Promise/thenを設定しているが順番通りに実行されない

nomu_lui

総合スコア11

Vue.js

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

コールバック

コールバックは他のコードに引数として渡されるコードのことを指します。

非同期処理

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

0グッド

0クリップ

投稿2021/02/25 09:27

実現したいこと

Vueを使った実装を進めています。
Promiseを使って選択肢1、選択肢2、選択肢3を順番に作成したいのですが、順番になりません。
(1→3→2になったり3→1→2になったり)

修正箇所がわかる方がいらっしゃいましたら、修正箇所をご指摘いただけますと幸いです。
よろしくお願いいたします。

Vue

1 const choice1 = new Promise((resolve, reject) => { 2 this.$axios.post("/v1/questionnaire_choices", { 3 questionnaire_id: questionnaire_id, 4 choice: this.questionnaire.choice_first, 5 }); 6 resolve("投稿完了しました。投票結果はマイページからいつでも確認できます。"); 7 }); 8 9 const choice2 = choice1.then( 10 this.$axios.post("/v1/questionnaire_choices", { 11 questionnaire_id: response_questionnaire_id, 12 choice: this.questionnaire.choice_second, 13 }) 14 ); 15 16 const choice3 = choice2.then( 17 this.$axios.post("/v1/questionnaire_choices", { 18 questionnaire_id: response_questionnaire_id, 19 choice: this.questionnaire.choice_third 20 }) 21 ); 22 23 choice1();

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

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

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

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

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

guest

回答1

0

ベストアンサー

Promiseは非同期ですから当たり前ですね。

Queueを使うのはいかがでしょうか。
https://www.npmjs.com/package/promise-queue

投稿2021/02/26 01:00

gambaldia

総合スコア266

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問