1

以下に示すように、qwest を使用してエンドポイントをクエリしています。onGetResourceCompleted ハンドラーは期待どおりに起動しますが、データは未定義です。なんで?

var Actions = Reflux.createActions({
  'getResource': { asyncResult: true }
});

Actions.getResource.listenAndPromise(function (id) {
  return qwest.get('http://localhost:8000/my-data/'+id, null, { withCredentials: true });
});


var MyStore = Reflux.createStore({

  listenables: Actions,

  init: function () {
    Actions.getResource('');
  },

  onGetResourceCompleted: function (data) {
    console.log('OK', data); // Get's called but data is undefined. Why?
  }

});

開発ツールを見るだけでなく、次のようにして単独で qwest を呼び出すことで、データが正しく読み込まれていることを確認できます。

qwest.get('http://localhost:8000/my-data/'+id, null, { withCredentials: true }).then(function(data) {
  console.log('OK', data);
});

また、次の作業を行う:

ServiceActions.getResource.listen(function (id) {
  ServiceActions.getResource.promise(
    qwest.get('http://localhost:8000/my-data/'+id, null, { withCredentials: true })
  );
});
4

1 に答える 1