Back to Ai

readStreamableValue

content/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx

2.1.101.6 KB
Original Source

readStreamableValue

<Note type="warning"> AI SDK RSC is currently experimental. We recommend using [AI SDK UI](/docs/ai-sdk-ui/overview) for production. For guidance on migrating from RSC to UI, see our [migration guide](/docs/ai-sdk-rsc/migrating-to-ui). </Note>

It is a function that helps you read the streamable value from the client that was originally created using createStreamableValue on the server.

Import

<Snippet text={import { readStreamableValue } from "@ai-sdk/rsc"} prompt={false} />

Example

ts
async function generate() {
  'use server';
  const streamable = createStreamableValue('');

  streamable.append('Hello');
  streamable.append(' ');
  streamable.append('World');
  streamable.done();

  return streamable.value;
}
tsx
import { readStreamableValue } from '@ai-sdk/rsc';

export default function Page() {
  const [generation, setGeneration] = useState('');

  return (
    <div>
      <button
        onClick={async () => {
          const stream = await generate();

          for await (const value of readStreamableValue(stream)) {
            setGeneration(value);
          }
        }}
      >
        Generate
      </button>
    </div>
  );
}

API Signature

Parameters

<PropertiesTable content={[ { name: 'stream', type: 'StreamableValue', description: 'The streamable value to read from.', }, ]} />

Returns

It returns an async iterator that contains the values emitted by the streamable value.