4

バックエンドで Sequelize を使用する GraphQL サーバーを実装しようとしています (舞台裏で MSSQL を操作するため)。そして、期待どおりに完全に機能するクエリ (単一の SQL テーブルからデータを取得する) があります。

しかし、その後、同じスキーマのミューテーションを設定し、GraphiQL でミューテーションを実行すると、ミューテーションのリゾルブ関数 (Sequelize スキーマのインスタンスを作成する) 内のものを実行しているのに、そうであることがわかりました。私の物を私に返さないでください。

ここに画像の説明を入力

Sequelize.create関数が promise を返し、resolve がそれを処理できないためだと思いますか?

ここに私がこれまでに持っているものがあります:

resolve(_,args){
  Forecast.create({
    bunit: args.bunit,
    season: args.season,
    position: args.position,
    currency: args.currency,
    settle_date: new Date(args.settle_date),
    reference: args.reference
  }).then(forecast => {
    return forecast;
  }).catch(err => {
    console.error(err);
    return err;
  });
}

非同期で何かをしているときに解決関数が返す必要があるものを構築する方法を示す明確な説明やチュートリアルが見つかりません。または、私はそれを理解していません。これもかなり可能性があります。

4

2 に答える 2

1

上記の@Adamの提案は、このインスタンスで機能しました。メソッドが呼び出すpromise を読み取る必要がないことに驚いていますが.create、そのようにすれば問題なく動作するようです。

resolve(_,args){
      return Forecast.create({
        bunit: args.bunit,
        season: args.season,
        position: args.position,
        currency: args.currency,
        settle_date: new Date(args.settle_date),
        reference: args.reference
      });
      // .then(forecast => {
      //   console.error(err);
      //   //return forecast;
      // }).catch(err => {
      //   console.error(err);
      //   //return err;
      // });

      //return newForecast;
    }
  }

ここに画像の説明を入力

ありがとう!

于 2016-02-05T14:43:37.323 に答える