首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何返回Cloudant插入状态?

如何返回Cloudant插入状态?
EN

Stack Overflow用户
提问于 2017-09-13 14:34:20
回答 1查看 246关注 0票数 0

我有以下代码:

代码语言:javascript
复制
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,但是我可能没有正确地设置它们,因为它们也没有工作。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-13 15:11:28

这是一个"JavaScript是异步的“问题。您可以将updateDocument函数简化如下:

代码语言:javascript
复制
updateDocument = (data) => {
   var cloudant = Cloudant({ url: CONN_STRING, plugin: 'promises');
   let db = cloudant.db.use('my-db')
   return db.insert(data);
}

这是使用Cloudant库与“承诺”插件。JavaScript承诺帮助您在不传递回调函数的情况下管理异步调用。

您可以这样称呼这段代码:

代码语言:javascript
复制
updateDocument({a: 1, :b})
  .then((data) => {
    console.log('success!', data);
  }.catch((e) => {
    console.log('oops!', e);
  });

成功到达‘那么’,失败在‘抓住’子句中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46200313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档