使用异步迭代在我的后端显示某些资源的状态是一个好习惯吗?例如:
const item = driver.get(idOfDriver)
try {
for await (const { status } of item) {
console.log(status)
}
} catch (err) {
// do something here
} finally {
// the driver arrived in the final location
const { finalLocation, id } = item
console.log(`final location of driver ${id} is ${finalLocation`)
}
我做了异步迭代不适合做的事情?
提前致谢。
答案 0 :(得分:0)
如果我弄错了,请纠正我,但我想您只是尝试在get
中启动数据提取并等到它被加载,然后进行一些处理。在这种情况下,您不需要异步迭代,这在处理一系列承诺时会在更复杂的场景中使用。
你可以使用ES6承诺:
driver.get(idOfDriver)
.then(({ finalLocation, id }) => {
console.log(`final location of driver ${id} is ${finalLocation`)
})
.catch(err => console.error(err))
或使用ES7 async/await
语法:
try {
const {finalLocation, id} = await driver.get(idOfDriver);
console.log(`final location of driver ${id} is ${finalLocation`)
}
catch(err) {
console.error(err)
}