等待解决没有参数的承诺的函数
Awaiting function that resolves a promise with no arguments
我有一个函数可以在不传递任何参数的情况下解析 Promise:
const checkUser = (user)=> {
let promise = Parse.Promise();
if(user.success){
promise.resolve();
} else {
promise.reject("Error");
}
}
问题是,在我阅读的所有教程中,它们都将返回值分配给一个变量,如下所示:
let response = await checkUser(user);
在上述情况下,我是否可以只等待承诺而不将结果分配给变量,或者不推荐这样做?例如:
...
await checkUser(user);
...
是的,你完全可以做到。 JavaScript 仍会等待 promise 解决。
这里是对MDN's first example for await
的修改。它没有 return 一个值,但仍在 运行 await
之后的代码之前等待 Promise 解析。
function resolveAfter2Seconds() {
return new Promise(resolve => {
setTimeout(resolve, 2000);
});
}
(async function() {
console.log(1)
await resolveAfter2Seconds();
console.log(2);
})()
我认为不兑现承诺是一种不好的做法,因为这是获得结果的适当渠道。如果你不想得到结果,你为什么要调用一个函数呢?不过,这可能主要适用于函数式编程。
Can I just await
the promise without assigning the result to a variable or this is not recommended?
是的,你完全可以做到。如果你不需要对结果做任何事情——比如当你知道它总是 undefined
- 那么你可以忽略它。
我有一个函数可以在不传递任何参数的情况下解析 Promise:
const checkUser = (user)=> {
let promise = Parse.Promise();
if(user.success){
promise.resolve();
} else {
promise.reject("Error");
}
}
问题是,在我阅读的所有教程中,它们都将返回值分配给一个变量,如下所示:
let response = await checkUser(user);
在上述情况下,我是否可以只等待承诺而不将结果分配给变量,或者不推荐这样做?例如:
...
await checkUser(user);
...
是的,你完全可以做到。 JavaScript 仍会等待 promise 解决。
这里是对MDN's first example for await
的修改。它没有 return 一个值,但仍在 运行 await
之后的代码之前等待 Promise 解析。
function resolveAfter2Seconds() {
return new Promise(resolve => {
setTimeout(resolve, 2000);
});
}
(async function() {
console.log(1)
await resolveAfter2Seconds();
console.log(2);
})()
我认为不兑现承诺是一种不好的做法,因为这是获得结果的适当渠道。如果你不想得到结果,你为什么要调用一个函数呢?不过,这可能主要适用于函数式编程。
Can I just
await
the promise without assigning the result to a variable or this is not recommended?
是的,你完全可以做到。如果你不需要对结果做任何事情——比如当你知道它总是 undefined
- 那么你可以忽略它。