2017-11-09 27 views
1

私はReact-Nativeアプリケーションを使用して、GraphQLサーバーにリクエストします。リクエスト/クライアントのタイムアウトを5秒または10秒に設定する方法が必要な場合を除いて、すべてうまく動作します。現在、要求がタイムアウトするまでに非常に長い時間がかかります(約1分)。Apolloクライアントでリクエストにタイムアウトを設定する方法

ここでは、クライアントの使い方の簡単な例を示します。

const client = new ApolloClient({ 
    networkInterface: createNetworkInterface({ 
    uri: `${config.server_hostname}/graphql` 
    }) 
}); 

client.query({ query: gqlString }); 

私はStackOverflow、Google検索、またはApolloのドキュメントで解決策を見つけることができませんでした。

答えて

0

Apolloクライアントは、(v1.9およびapollo-link-http)フェッチAPIを使用してリクエストを送信します。従ってそこにis no cross-browser way to abort a fetch

const oldfetch = fetch; 
fetch = function(input, opts) { 
    return new Promise((resolve, reject) => { 
     setTimeout(reject, opts.timeout); 
     oldfetch(input, opts).then(resolve, reject); 
    }); 
} 

しかし、これは実際にリクエストを中止しないよう注意してください:あなたは、ネットワークインタフェースまたはリンクを所有し、このようなものを使用し、あなたを作成することができます。あなたは多くの実行要求に終わり、ブラウザの制限を打つことができます。

はところでそれはAbortController ;-)

ためのアポロ・リンクのhttp is preparedのように見えます
関連する問題