我的后端有一系列 promise ,我需要在第二个 promise 中访问第一个 promise 的结果
mongo.connect()
.then((client) => {
return circolari.infiniteScroll(client, currCirc)
})
.then(({ data, client }) => {
mongo.close(client)
res.send(data)
})
.catch(error => res.sendStatus(error.message))
我需要访问client
在第二个 promise 中关闭连接。
现在为了实现这个目标,我决心circolari.infiniteScroll(client, currCirc)
像这样的对象:
resolve({
data: data,
client: client
})
通过此解决方法,它可以工作,但我认为有更好的方法,谢谢。
最佳答案
你可以让它短一点:
mongo.connect()
.then(client => circolari.infiniteScroll(client, currCirc)))
.then(({ data, client }) => {
mongo.close(client);
res.send(data);
})
或者使用await和async:
async function returnResponse(res) {
let client;
try {
client = await mongo.connect();
const data = await circolari.infiniteScroll(client, currCirc);
res.send(data);
} catch (err){
res.sendStatus(err.message)
} finally {
await mongo.close(client); // close connection in every case
}
}
foo();
关于javascript - 我如何将前一个 promise 的结果传递给下一个 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58068730/