GraphRequestManager で promise を使用する方法の例はありますか? アクションクリエーターでプロパティを読み取ることができず、未定義のエラーが発生します。
function graphRequest(path, params, token=undefined, version=undefined, method='GET') {
return new Promise((resolve, reject) => {
new GraphRequestManager().addRequest(new GraphRequest(
path,
{
httpMethod: method,
version: version,
accessToken: token
},
(error, result) => {
if (error) {
console.log('Error fetching data: ' + error);
reject('error making request. ' + error);
} else {
console.log('Success fetching data: ');
console.log(result);
resolve(result);
}
},
)).start();
});
}
アクションクリエーターを使用して上記を呼び出します
export function accounts() {
return dispatch => {
console.log("fetching accounts!!!!!!");
dispatch(accountsFetch());
fbAPI.accounts().then((accounts) => {
dispatch(accountsFetchSuccess(accounts));
}).catch((error) => {
dispatch(accountsFetchFailure(error));
})
}
}
エラーの前の結果とともに、コンソールに「Success fetching data:」が表示されます。したがって、API 呼び出しは正常に行われます。エラーは、 fbAPI.accounts().then((accounts) でアカウントをフェッチした後に発生します。これは、GraphRequestManager が待機するのではなく、すぐに返されるためだと思います。