defer
要开始使用流式数据,请查看 流式数据指南。
这是创建流式/延迟响应的快捷方式。它假设您正在使用 `utf-8` 编码。从开发人员的角度来看,它的行为与 json()
相同,但具有将 promise 传输到 UI 组件的能力。
import { defer } from "@remix-run/node"; // or cloudflare/deno
export const loader = async () => {
const aStillRunningPromise = loadSlowDataAsync();
// So you can write this without awaiting the promise:
return defer({
critical: "data",
slowPromise: aStillRunningPromise,
});
};
您还可以传递状态代码和标头
export const loader = async () => {
const aStillRunningPromise = loadSlowDataAsync();
return defer(
{
critical: "data",
slowPromise: aStillRunningPromise,
},
{
status: 418,
headers: {
"Cache-Control": "no-store",
},
}
);
};