Skip to content

Commit 2ae9281

Browse files
committed
Catch errors thrown during end event
Fixes #985
1 parent 536e9a6 commit 2ae9281

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

lib/client.js

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -501,16 +501,20 @@ function Request(method, url) {
501501
return self.callback(err, res);
502502
}
503503

504-
if (res.status >= 200 && res.status < 300) {
505-
return self.callback(err, res);
506-
}
504+
try {
505+
if (res.status >= 200 && res.status < 300) {
506+
return self.callback(err, res);
507+
}
507508

508-
var new_err = new Error(res.statusText || 'Unsuccessful HTTP response');
509-
new_err.original = err;
510-
new_err.response = res;
511-
new_err.status = res.status;
509+
var new_err = new Error(res.statusText || 'Unsuccessful HTTP response');
510+
new_err.original = err;
511+
new_err.response = res;
512+
new_err.status = res.status;
512513

513-
self.callback(new_err, res);
514+
self.callback(new_err, res);
515+
} catch(e) {
516+
self.callback(e); // #985 touching res may cause INVALID_STATE_ERR on old Android
517+
}
514518
});
515519
}
516520

0 commit comments

Comments
 (0)