IBM云函数:在NodeJS中使用异步调用 [英] IBM Cloud Functions: Use async calls in Nodejs
本文介绍了IBM云函数:在NodeJS中使用异步调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Cloud.ibm.com的Access a Cloudant Database操作中运行此代码:
async function main(params) {
const cloudant = Cloudant({
url: params.COUCH_URL,
plugins: { iamauth: { iamApiKey: params.IAM_API_KEY } }
});
try {
let dbList = await cloudant.db.list();
let db = await cloudant.use('dealerships')
let result = await db.get("ddb5ed4f65d21bf4a4da409b8bc4b70a")
let query = {
"selector": {
"_id": "ddb5ed4f65d21bf4a4da409b8bc4b70a"
},
"fields": [
"_id",
"_rev"
],
"sort": [
{
"_id": "asc"
}
]
}
let result2 = await db.find(query, function(err, data){
return data;
});
let indexes_result = await db.index(function(err, result) {
if (err) {
throw err;
}
else{
return result
}
let indexes_ = {};
return indexes_
});
return {
"dblist": dbList,
"result": result,
"result2": result2,
}
} catch (error) {
return { error: error.description };
}
}
我的结果如下:
Results:
{
"dblist": [
"alice",
"celina",
"dealerships",
"gaetan",
"guestbook",
"reviews"
],
"result": {
"_id": "ddb5ed4f65d21bf4a4da409b8bc4b70a",
"_rev": "1-34e7ebd07643af43db578a46ee1d6365",
"address": "3 Nova Court",
"city": "El Paso",
"full_name": "Holdlamis Car Dealership",
"id": 1,
"lat": 31.6948,
"long": -106.3,
"short_name": "Holdlamis",
"st": "TX",
"state": "Texas",
"zip": "88563"
}
}
Logs:
[]
所以我的Result2没有出现在Result对象中,并且我不知道发生了什么。我希望我可以访问一些日志和一些错误,以了解问题所在,但我无权访问任何内容。
有人能为我提供访问日志和错误的方法吗?
推荐答案
您的IBM Cloud Functions操作可以使用异步代码。对于Node.js,请查看Functions documentation,了解如何修复它。您需要使用承诺。
您可以在dashboard中查看您的操作的激活日志,或者使用CLI/API或通过SDK检索它们。
顺便说一下:在您自己的回答中,您指的是Cloudant文档。它独立于IBM Cloud Functions/OpenWhisk。这篇关于IBM云函数:在NodeJS中使用异步调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文