我正在努力理解async/await与promises如何一起使用。
据我理解,await应该是阻塞的,在上面的代码中它似乎阻塞了返回一个带有原始时间戳的对象bl。然后,我的函数返回了原始值,但是时间变量被设置为一个未决的promise而不是那个原始值。我错过了什么吗?
async function latestTime() {
const bl = await web3.eth.getBlock('latest');
console.log(bl.timestamp); // Returns a primitive
console.log(typeof bl.timestamp.then == 'function'); //Returns false - not a promise
return bl.timestamp;
}
const time = latestTime(); // Promise { <pending> }
据我理解,await应该是阻塞的,在上面的代码中它似乎阻塞了返回一个带有原始时间戳的对象bl。然后,我的函数返回了原始值,但是时间变量被设置为一个未决的promise而不是那个原始值。我错过了什么吗?
await should be blocking
不是正确的做法 - 在 JavaScript 中使用非阻塞代码是一个“坏主意”™,而 async/await 与阻塞毫无关系。 - Jaromanda Xasync function
都会返回一个 promise,这样在其中您就可以使用await
等待其他 promises,这就是整个的重点。 - Bergi