gpt4 book ai didi

node.js - 如何返回 Cloudant 插入状态?

转载 作者:太空宇宙 更新时间:2023-11-04 03:03:54 25 4
gpt4 key购买 nike

我有以下代码:

updateDocument = (data) => {
Cloudant(CONN_STRING, (err, cloudant) => {
if (err) {
throw new Error('Failed to initialize Cloudant: ' + err.message);
}

let db = cloudant.db.use('my-db')

db.insert(data, (err, result) => {
if (err) {
throw new Error('Failed to initialize Cloudant: ' + err.message);
}
else {
console.log(result);
}
})
});
}

我希望 updateDocument() 返回 db.insert 提供的结果。但是,如果我尝试返回一个变量,它是未定义的(我相信是因为异步调用)。我尝试过 asyncawait,但我可能没有正确设置它们,因为它们也不起作用。

感谢您的帮助!

最佳答案

这是一个“JavaScript 是异步的”问题。您可以像这样简化 updateDocument 函数:

updateDocument = (data) => {
var cloudant = Cloudant({ url: CONN_STRING, plugin: 'promises');
let db = cloudant.db.use('my-db')
return db.insert(data);
}

这是使用带有“promises”插件的 Cloudant 库。 JavaScript Promises 可帮助您管理异步调用,而无需传递回调函数。

您可以像这样调用这段代码:

updateDocument({a: 1, :b})
.then((data) => {
console.log('success!', data);
}.catch((e) => {
console.log('oops!', e);
});

成功到达“then”,失败到达“catch”子句。

关于node.js - 如何返回 Cloudant 插入状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46200313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com