asyncの非同期関数の同期処理化の方法は?



  • 関数Aの処理が終わってから関数Bの処理を実行するようにする方法を教えて下さい。関数内でサーボを動作させるためにawait obniz.wait()は必須だと思いますが、そうするとasync化が必要になり、AとBが意図しない並列動作してしまっているような気がします。

    ■現在のコード
    A();
    B();

    async function A(){
     ・
     ・
     servo1.angle(10);
     await obniz.wait(50);
     ・
     ・
    }

    async function B(){
     ・
     ・
     servo2.angle(20);
     await obniz.wait(100);
     ・
     ・
    }



  • @Google-Homer

    async () => {
      await A();
      await B();
    }();
    

    上記のようにawait を入れないと非同期実行されます



  • ありがとうございました。awaitで期待通りの動作をさせる事ができました。


 

Recent Projects

  • @nak435 かしこまりました。よろしくお願いします。

    read more
  • @Yuki-Sato さん、

    外部の3.3vを使うとはいえ普通にvccやgndを供給して問題なくうごくのであれば、弊社での動作確認後Flick Hatのライブラリとして公開できればと思っているのですがいかがでしょう。

    今週末に確認しますので、お待ちください。

    read more
  • @nak435 時間がかかってすいません、

    なんとか3.3vをgndにつないでFlick Largeを動かしたかったのですが、うまく動かすことができなかったです。
    3.3vをgndを繋がずに接続するというのはライブラリで推奨して伝えることは難しいと思ってます。

    Flick LargeでなくFlick Hatの方で、外部の3.3vを使うとはいえ普通にvccやgndを供給して問題なくうごくのであれば、弊社での動作確認後Flick Hatのライブラリとして公開できればと思っているのですがいかがでしょう。

    よろしくお願い致します。

    read more
  • @nak435 ありがとうございます。
    接続は3.3vのgnd以外同じでした。
    エラーはそのせいかもしれませんが、しかし電気的にはgndを繋がない場合3.3vとしてうまく供給できないはずなのでそこが不思議です。

    教えていただいたプログラムの部分を修正して試してみたいと思います。
    また少し時間がかかりそうなのですが、早めに試したいと思います。

    引き続きよろしくお願い致します。

    read more