代码之家  ›  专栏  ›  技术社区  ›  user3742125

为什么promise.then()的行为是异步的?[副本]

  •  -2
  • user3742125  · 技术社区  · 6 年前

    这个问题已经有了答案:

    在下面的代码中为什么 promise.then() 行为异步。换句话说,为什么浏览器不等待内部写入的代码 答应。然后()) 要执行的方法?.什么告诉浏览器引擎这样 答应。然后()) 进行异步调用?

    const money = 500;
    
    let promise = new Promise(function(resolve,reject){
        if(money > 400){
            resolve('You have a car!');
        }else{
            reject('Yo do not have enough money to buy the Car!');
        }
    });
    console.log('Before');
    promise.then(function(data){
        console.log('Success '+data);
    });
    console.log('After');
    

    上面的代码按下面的顺序打印输出,这意味着promise.then()可以异步工作。

    • 以前
    • 成功你有车!
    1 回复  |  直到 6 年前
        1
  •  2
  •   Tung Duong    6 年前

    承诺是异步的

    您可以像这样使用wait使同步

    const money = 500;
    
    let promise = new Promise(function(resolve,reject){
        if(money > 400){
            resolve('You have a car!');
        }else{
            reject('Yo do not have enough money to buy the Car!');
        }
    });
    console.log('Before');
    
    let data = await promise
    console.log('Success '+data);
    console.log('After');
    

    得到结果

    Before
    Success You have a car!
    After