[Preguntas de la entrevista de front-end] La diferencia entre async await y Promise

La diferencia entre async await y Promise

asíncrono

async se usa para definir funciones asíncronas , y el valor de retorno de la función de impresión es un objeto Promise , que se .thenpuede llamar de la misma manera.

//执行async函数,返回的都是Promise对象
async function test1() {
    
    
    return 1;//相当于return Promise.resolve(1)
}

async function test2() {
    
    
    return Promise.resolve(2);
}
const result1 = test1();
const result2 = test2();
console.log(result1);//Promise对象
console.log(result2);//Promise对象

//async 定义的函数可以用then的方式调用
async function test3() {
    
    
    const p3 = Promise.resolve(3);
    //.then 的方式
    p3.then(data => {
    
    
        console.log('data3', data)//3
    })
}
test3()

esperar

await debe colocarse en la función asíncrona definida por async, seguida de la expresión de Promise, que corresponde al éxito de Promise.then .

//Promise.then成功的情况对应await
async function test3() {
    
    
    const p3 = Promise.resolve(3);
    //.then 的方式
    p3.then(data => {
    
    
        console.log('data3', data)//3
    })

    //await的方式
    const data3 = await p3;
    console.log('data3', data3)//3
    //.then和await打印的值相同,可以说明Promise.then成功的情况对应await
}
test3()

Si await le sigue Promise.reject(), utilice try catch para capturar

//Promise.catch 异常的情况对应try...catch
//异常不能被捕获的情况
async function test6() {
    
    
    const p6 = Promise.reject(6);
    const data6 = await p6;
    console.log(data6);//Uncaught (in promise) 6 —— 异常不能被捕获
}
test6()

async function test7() {
    
    
    const p7 = Promise.reject(7);
    try {
    
    
        const data7 = await p7;
        console.log(data7);
    } catch (err) {
    
    
        console.error(err);//7 —— 异常可以被捕获
    }
}
test7()

La diferencia entre async await y Promise

Promesa espera asincrónica
ES6 ES7
Puede ser capturado por .catch Debes definir atraparte a ti mismo
Hay muchos métodos: todos, carrera, etc.

Lo anterior es la diferencia entre async await y Promise. Preste atención a la columna " Preguntas de la entrevista inicial ".
Compartiré los problemas comunes en mis proyectos habituales y el conocimiento de la prueba escrita y la entrevista contigo en CSDN, y progresaremos juntos.

Supongo que te gusta

Origin blog.csdn.net/weixin_46318413/article/details/122589295
Recomendado
Clasificación