6

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 が待機するのではなく、すぐに返されるためだと思います。

4

1 に答える 1