Callback, Asynch awai & Promise di ReactJs
- //Promise digunakan unutk mengatur fungsi callback
- import React, { Component } from "react";
- import ReactDOM from "react-dom";
-
- import "./styles.css";
-
- class App extends Component {
- state = {
- text: "text disini"
- };
-
- callFirstName = () => {
- return new Promise(resolve => {
- setTimeout(() => {
- resolve("Ichwan");
- }, 3000);
- });
- };
-
- callMiddleName = () => {
- return new Promise(resolve => {
- setTimeout(() => {
- resolve(" Setyawan");
- }, 3000);
- });
- };
-
- callLastName = () => {
- return new Promise(resolve => {
- setTimeout(() => {
- resolve(" Rambe");
- }, 3000);
- });
- };
-
- login = () => {
- Promise.all([
- this.callFirstName(),
- this.callMiddleName(),
- this.callLastName()
- ]).then(([result, result2, result3]) => {
- this.setState({ text: result + result2 + result3 });
- });
- };
-
- render() {
- const login = this.login;
- const text = this.state.text;
-
- return (
- <div>
- <h1>Asynchorinus Await</h1>
- <hr />
- <button onClick={login}>LOGIN</button>
- <h3>{text}</h3>
- </div>
- );
- }
- }
-
- const rootElement = document.getElementById("root");
- ReactDOM.render(<App />, rootElement);
Cara lain
- import React, { Component } from "react";
- import ReactDOM from "react-dom";
-
- import "./styles.css";
-
- class App extends Component {
- state = {
- text: "text disini"
- };
-
-
-
- callFirstName = () => {
- return new Promise(resolve => {
- setTimeout(() => {
- resolve("Ichwan");
- }, 3000);
- });
- };
-
- callMiddleName = () => {
- return new Promise(resolve => {
- setTimeout(() => {
- resolve(" Setyawan");
- }, 3000);
- });
- };
-
- callLastName = () => {
- return new Promise(resolve => {
- setTimeout(() => {
- resolve(" Rambe");
- }, 3000);
- });
- };
-
-
- login = async() =>{
- const first = await this.callFirstName();
- const middle = await this.callMiddleName();
- const last = await this.callLastName();
- const name = first + middle + last;
- this.setState({
- text: name
- })
- }
-
-
-
-
- render() {
- const login = this.login;
- const text = this.state.text;
-
- return (
- <div>
- <h1>Asynchorinus Await</h1>
- <hr />
- <button onClick={login}>LOGIN</button>
- <h3>{text}</h3>
- </div>
- );
- }
- }
-
- const rootElement = document.getElementById("root");
- ReactDOM.render(<App />, rootElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Tidak ada komentar:
Posting Komentar