2017-05-22 9 views
1

ファイルアップロードの進捗状況を計算しようとしていますので、Superagentを使用していました。ファイルのアップロードの進行状況を確認することができました。reactjs - スーパーエージェントの投稿要求を中断する

ユーザーがキャンセルボタンを選択すると、投稿リクエストを中断またはキャンセルする必要があります。それを行う方法はありますか?以下は、私のコードです:

var file = somefile.pdf 
Request.post('http://posttestserver.com/post.php?dir=example') 
    .set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") 
    .send(file) 
    .on('progress', function(e) { 
    console.log('Progress', e.percent); 
    }) 
    .end((err, res) => { 
     console.log(err); 
     console.log(res); 
    }) 

答えて

1

いくつかの研究の後、私はどのようにinterruptまたはcancelまたはabortsuperagent requestを見つけることができました。次のコードは動作します:

var file = somefile.pdf 
var req = Request.post('http://posttestserver.com/post.php?dir=example') 
    .set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") 
    .send(file) 
    .on('progress', function(e) { 
    if (condition) { 
     req.abort() // to cancel the request 
    } 
    console.log('Progress', e.percent); 
    }) 
    .end((err, res) => { 
     console.log(err); 
     console.log(res); 
    }) 

追加情報を自分のdocs

.abort()

から.abort連鎖を許可する必要があり、要求

var req = request 
    .get(uri + '/delay/3000') 
    .end(function(err, res){ 
    try { 
    assert(false, 'should not complete the request'); 
    } catch(e) { done(e); } 
     }); 
    req.on('error', function(error){ 
    done(error); 
    }); 
    req.on('abort', done); 
    setTimeout(function() { 
    req.abort(); 
    }, 500); 

を中止すべきである()いくつかの回

var req = request 
    .get(uri + '/delay/3000') 
    .end(function(err, res){ 
    try { 
    assert(false, 'should not complete the request'); 
    } catch(e) { done(e); } 
    }); 
    // This also verifies only a single 'done' event is emitted 
    req.on('abort', done); 
    setTimeout(function() { 
    req.abort().abort().abort(); 
    }, 1000); 
関連する問題