跳转至

同步 API

源码: source/as-promise/index.ts

主Got函数返回一个Promise。 虽然为了支持取消,使用PCancelable代替纯Promise

got(url: string | URL, options?: OptionsInit, defaults?: Options)

返回: Promise<Response>

最常见的方法是将URL作为第一个参数传递,然后将选项作为第二个参数传递。

1
2
3
4
5
6
7
import got from "got";

const { headers } = await got("https://httpbin.org/anything", {
  headers: {
    foo: "bar",
  },
}).json();

got(options: OptionsInit)

Returns: Promise<Response>

或者,你可以只传递包含url属性的选项。

1
2
3
4
5
6
7
8
import got from "got";

const { headers } = await got({
  url: "https://httpbin.org/anything",
  headers: {
    foo: "bar",
  },
}).json();

这在语义上与第一种方法相同。

promise.json<T>()

Returns: Promise<T>

一个快捷方法,它给出一个返回JSON对象的Promise。

它在语义上与将options.resolveBodyOnly设置为true和将options.responseType设置为'json'相同。

promise.buffer()

Returns: Promise<Buffer>

给出一个Promise返回一个Buffer的快捷方法.

它在语义上与将 options.resolveBodyOnly设置为true和将options.responseType设置为'buffer'相同。

promise.text()

Returns: Promise<string>

一个快捷方法,给出一个返回字符串的Promise。

它在语义上与将 options.resolveBodyOnly 设置为 true 和将 options.responseType 设置为 'text'相同。.

promise.cancel(reason?: string)

取消请求,并可选择提供原因。

取消是同步的。 在承诺已经完成或多次之后调用它没有任何作用。

这将导致promise以CancelError拒绝。

promise.isCanceled

类型: boolean

承诺是否被取消。

promise.on(event, handler)

事件与流API中相同.

promise.off(event, handler)

移除用promise.on注册的监听器

import { createReadStream } from "node:fs";
import got from "got";

const ongoingRequestPromise = got.post(uploadUrl, {
  body: createReadStream("sample.txt"),
});

const eventListener = (progress: Progress) => {
  console.log(progress);
};

ongoingRequestPromise.on("uploadProgress", eventListener);

setTimeout(() => {
  ongoingRequestPromise.off("uploadProgress", eventListener);
}, 500);

await ongoingRequestPromise;