ada*_*opp 1 javascript node.js async-await
我正在尝试使用异步函数来调用另一个函数内的函数。它看起来像这样:
const getConnectionsWithEmailsHash = async () => {
const connectionsWithEmails = await parseConnections('./tmp/connections.csv')
console.log(connectionsWithEmails)
return connectionsWithEmails
}
const connectionsWithEmailsHash = getConnectionsWithEmailsHash()
console.log(connectionsWithEmailsHash)
Run Code Online (Sandbox Code Playgroud)
当我在异步函数中使用 console.log() 时,我得到了我期望的哈希值,但是当我在 console.log() 中调用异步函数的结果时,我得到了未决的承诺。我虽然异步函数的重点是它在调用时等待承诺得到解决,所以我做错了什么?
async函数返回承诺。这一行:
const connectionsWithEmailsHash = getConnectionsWithEmailsHash()
Run Code Online (Sandbox Code Playgroud)
...只是设置connectionsWithEmailsHash为函数返回的承诺。要实际获得承诺的分辨率值,您需要:
await在另一个async函数中使用(如果这意味着async在顶层使用,请参阅:如何在顶层使用 async/await?):
const connectionsWithEmailsHash = await getConnectionsWithEmailsHash()
Run Code Online (Sandbox Code Playgroud)
或者,
使用then承诺
getConnectionsWithEmailsHash()
.then(connectionsWithEmailsHash => {
// ...use `connectionsWithEmailsHash`....
})
.catch(error => {
// ...handle error...
})
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |