代码之家  ›  专栏  ›  技术社区  ›  Alexandre Lara

等待函数,用于解析没有参数的承诺

  •  2
  • Alexandre Lara  · 技术社区  · 7 年前

    我有一个函数,可以解析一个承诺而不传递任何参数:

    const checkUser = (user)=> {
        let promise = Parse.Promise();
    
        if(user.success){
            promise.resolve();
        } else {
            promise.reject("Error");
        }
    }
    

    问题是,在我阅读的所有教程中,它们都将返回值赋给变量,如下所示:

    let response = await checkUser(user);
    

    ...
    await checkUser(user);
    ...
    
    2 回复  |  直到 7 年前
        1
  •  3
  •   Patrick Roberts Benjamin Gruenbaum    7 年前

    是的,你完全可以做到。JavaScript仍将等待承诺的解决。

    这是对 MDN's first example for await . 它不会返回一个值,但仍然在运行之后的代码之前等待承诺解析 等待 .

    function resolveAfter2Seconds() { 
      return new Promise(resolve => {
        setTimeout(resolve, 2000);
      });
    }
    
    (async function() {
      console.log(1)
      await resolveAfter2Seconds();
      console.log(2);
    })()
        2
  •  -1
  •   Bergi    7 年前

    我认为一无所有地解决承诺是一种不好的做法,因为这是获得结果的适当渠道。如果你不想得到一个结果,为什么要调用一个函数呢?不过,这可能主要适用于函数式编程。

    我能不能 await

    是的,你完全可以做到。如果你不需要对结果做任何事-比如你知道它总是这样 undefined -你就可以忽略它。