Profundo conocimiento de async / wait de ES7

Texto original de referencia:

https://blog.csdn.net/sinat_17775997/article/details/60609498

En js, podemos usar Promise para facilitar las operaciones asincrónicas, pero a veces habrá una relación entre dos operaciones asincrónicas, como solicitar los datos A una vez y luego solicitar los datos B después de obtenerlos.

Para resolver el problema anterior, en el pasado, podemos solicitar una nueva Promesa en la Promesa que solicita los datos A. Esto está completamente bien, pero el código no se ve muy elegante, como si volviera al infierno original de devolución de llamada. es7 nos proporciona una espera asíncrona para resolver el problema anterior de manera más simple. Primero mira el código


 var test=async function () {
    await new Promise(function(resolve,reject){
        setTimeout(function(){
            console.log('111')
            resolve('111')
        },5000)
    }).then((data)=>console.log('task1 end'))
    await new Promise(function(resolve,reject){
       setTimeout(function(){
           console.log('222')
           resolve('222')
       },5000)
   }).then((data)=>console.log('task2 end'))


}
test()



La función de prueba en el código está decorada con asíncrono, lo que indica que este es un método asincrónico. La palabra clave await solo se puede usar en un método sincrónico.

La palabra clave await se puede usar para esperar la ejecución de un código asincrónico. De hecho, está esperando una resolución de promesa. El valor de retorno es el valor de retorno final de la resolución de promesa después de que se ha procesado. Después de que la función se ejecute para esperar, la función esperará a que la función de espera termine de ejecutarse antes de continuar ejecutándose hacia abajo. Durante el período de espera, no se bloqueará y otras funciones se pueden ejecutar normalmente.

Publicado 21 artículos originales · ganado elogios 2 · Vistas 7283

Supongo que te gusta

Origin blog.csdn.net/qq_31261131/article/details/81170596
Recomendado
Clasificación