主分支
分支
主分支 (2.15.2)开发版
版本
2.15.21.19.3v0.21.0
React Router v7 已发布。 查看文档
defer

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 许可证授权