(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?"