Skip to content

[labs/task] Improve README.md usage example #1808

@blackgwe

Description

@blackgwe

Description

It's hard to understand the example in packages/labs/task/README.md, there are some syntax errors (back-ticks, comma …)

Maybe it's possible to add a working demo.

Proposal for the README.md file

import {Task, TaskStatus} from '@lit-labs/task';
// ...

export class MyElement extends LitElement {

  @state()
  private _userId: number = 7;
  
  private _apiTask = new Task(
      this, 
      ([dependencyParam1]) => fetch(`//jsonplaceholder.typicode.com/users/${dependencyParam1}`)
          .then(response => response.json()),
      () => [this._userId]   // dependencies getter -> returns array of dependencyParameters
    );

  render() {
     return html`
         <div>user</div>
         ${this._apiTask.render({ 
            pending: () => 'loading', 
            complete: (user) => `${user.name}` 
         })}`;
  }

Working Example

import {html, LitElement} from 'lit';
import {customElement, state} from 'lit/decorators.js';
import {Task, TaskStatus} from '@lit-labs/task';

@customElement('simple-greeting')
export class SimpleGreeting extends LitElement {

  @state()
  private _userId: number = 7;
  
  private _apiTask = new Task(
      this, 
      ([dependencyParam1]) => fetch(`//jsonplaceholder.typicode.com/users/${dependencyParam1}`)
          .then(response => response.json()),
      () => [this._userId] // dependencies getter -> returns array of dependencyParameters
    );

  render() {
    const pending = () => html`Loading user info...`;
    const complete = (user) => html`${user.name}`;
    return html`<p>Hello ${this._apiTask.render({ pending, complete })}</p>`;
  }
  
  // correct syntax
  // render() {
  //   return html`
  //       <div>user</div>
  //       ${this._apiTask.render({ 
  //          pending: () => 'loading', 
  //          complete: (user) => `${user.name}` 
  //       })}`;
  }

}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

✅ Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions