我如何 return Cloudant 插入状态?
How do I return Cloudant insert status?
我有以下代码:
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()
到 return db.insert 提供的结果。但是,如果我尝试 return 一个未定义的变量(我相信是因为异步调用)。我试过 async
和 await
,但我可能没有正确设置它们,因为它们也不起作用。
感谢您的帮助!
这是一个 "JavaScript is asynchronous" 问题。您可以像这样简化 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'子句
我有以下代码:
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()
到 return db.insert 提供的结果。但是,如果我尝试 return 一个未定义的变量(我相信是因为异步调用)。我试过 async
和 await
,但我可能没有正确设置它们,因为它们也不起作用。
感谢您的帮助!
这是一个 "JavaScript is asynchronous" 问题。您可以像这样简化 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'子句