延迟

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",
      },
    }
  );
};
文档和示例许可证为 MIT