Skip to content Skip to sidebar Skip to footer

(async () => { })(); What Is This?

async function test() { (async () => { var a = await this.test1(); var b = await this.test2(a); var c = await this.test3(b); this.doThis(a,b,c);

Solution 1:

Both return a promise but they return different promises.

The first will return a promise that may resolve before this.test1()'s result resolves.

The second returns a promise that only resolves after the final call to this.doThis(a,b,c);.

This has been called the "fire and forget pattern":

Often in application development you want a process to call another thread and continue the process flow, without waiting for a response from the called thread. This pattern is called the “fire and forget” pattern.

You can see this in

functionlogEventually(str) {
  returnnewPromise((resolve) => {
    setTimeout(() => {
      console.log(str);
      resolve(null);
    }, 0);
  });
}

asyncfunctiona() {
  awaitlogEventually('in a 1');
  awaitlogEventually('in a 2');
  awaitlogEventually('in a 3');
  returnawaitlogEventually('end of a');
}

asyncfunctionb() {
  (async () => {
    awaitlogEventually('in b 1');
    awaitlogEventually('in b 2');
    awaitlogEventually('in b 3');
  })();
  returnawaitlogEventually('end of b');
}

a();
b();

Post a Comment for "(async () => { })(); What Is This?"