Utilisation de base de l'attente asynchrone

Utilisation de l'attente asynchrone

自我记录

MDN : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/async_function
MDN : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference /Opérateurs/attendre

1. fonction asynchrone

La valeur de retour de la fonction est un objet de promesse.
Le résultat de l'objet de promesse est déterminé par la valeur de retour de l'exécution de la fonction asynchrone.

async function main() {
    
    
     // 1.如果返回值 是一个非Promise类型的数据
     // 返回的结果就是 一个成功的 Promise 对象 PromiseState状态 fulfilled
     // 并且return 什么 PromiseResult 结果就是什么
     // return 'abc'

     // 2.如果返回值 是一个Promise类型的数据
     // 返回的结果就是 Promise 结果的状态
     // return new Promise((resolve, reject) => {
    
    
     //     // resolve('成功')
     //     reject('失败')
     // })

     // 3.如果抛出异常
     // 状态就是一个失败的Promise对象 结果就是 抛出的结果
     throw 'err'
 }
 let res =  main()
 console.log(res);

Insérer la description de l'image ici

2.attendre l'expression

1. L'expression à droite de wait est généralement un objet de promesse, mais il peut également s'agir d'autres valeurs 2.
Si l'expression est un objet de promesse, wait renvoie la valeur d'une promesse réussie
3. Si l'expression est d'autres valeurs , cette valeur est directement utilisée comme valeur de retour de wait

async function main() {
    
    
    let p = new Promise((resolve, reject) => {
    
    
        resolve('成功')
    })
    // 1.右侧为promise的情况
    let res = await p
    console.log(res); // 打印   成功

    // 2.右侧为其它类型的数据 一般很少见
    let res2 = await 'abc'
    console.log(res2); // 打印  abc   
}
main()

3. Attention

wait doit être écrit dans la fonction async, mais il n'est pas nécessaire d'attendre dans la fonction async
. Si la promesse de wait échoue, une exception sera levée et devra être capturée et traitée via try...catch

async function main() {
    
    
    let p = new Promise((resolve, reject) => {
    
    
        reject('err')
    })
    try {
    
    
        let res3 = await p
        console.log(res3);
    } catch(e) {
    
    
        console.log(e); // 打印 err
    } finally{
    
    
        // 补充知识点 finally 无论成功失败都会执行
        console.log('无论成功失败 我都会执行!');
    }
}
main()

Je suppose que tu aimes

Origine blog.csdn.net/zhgweb/article/details/131063883
conseillé
Classement