66 lines
1.1 KiB
Markdown
66 lines
1.1 KiB
Markdown
# Extra
|
|
|
|
There are some niche features of @root/request which are beyond the request.js
|
|
compatibility.
|
|
|
|
## async/await & Promises
|
|
|
|
The differences in async support are explained in [README.md](/README.md), up near the top.
|
|
|
|
If you're familiar with Promises (and async/await), then it's pretty self-explanatory.
|
|
|
|
## ok
|
|
|
|
Just like WHATWG `fetch`, we have `resp.ok`:
|
|
|
|
```js
|
|
let resp = await request({
|
|
url: 'https://example.com'
|
|
}).then(mustOk);
|
|
```
|
|
|
|
```js
|
|
function mustOk(resp) {
|
|
if (!resp.ok) {
|
|
// handle error
|
|
throw new Error('BAD RESPONSE');
|
|
}
|
|
return resp;
|
|
}
|
|
```
|
|
|
|
## streams
|
|
|
|
The differences in stream support are explained in [README.md](/README.md), up near the top.
|
|
|
|
## userAgent
|
|
|
|
There's a default User-Agent string describing the version of @root/request, node.js, and the OS.
|
|
|
|
Add to the default User-Agent
|
|
|
|
```js
|
|
request({
|
|
// ...
|
|
userAgent: 'my-package/1.0' // add to agent
|
|
});
|
|
```
|
|
|
|
Replace the default User-Agent
|
|
|
|
```js
|
|
request({
|
|
// ...
|
|
headers: { 'User-Agent': 'replace/0.0' }
|
|
});
|
|
```
|
|
|
|
Disable the default User-Agent:
|
|
|
|
```js
|
|
request({
|
|
// ...
|
|
headers: { 'User-Agent': false }
|
|
});
|
|
```
|