$.couch.db().openDoc() 和 db.getDoc 是异步的,对吗?
Posted
技术标签:
【中文标题】$.couch.db().openDoc() 和 db.getDoc 是异步的,对吗?【英文标题】:$.couch.db().openDoc() & db.getDoc are asynchronous, right? 【发布时间】:2013-09-03 16:24:37 【问题描述】:尝试调用主题的方法并且效果很好,我从文档中获得所需的任何信息在方法中。现在我想在方法之外使用该信息,并且每当我尝试输出变量undefined
。
根据我的阅读,这些方法是 asynchronous
,因此是 undefined
结果。
那么,如何解决呢?执行$.ajax(.. async:false..)
类型的工作违背了目的,*a*jax 是 *a*sync。除了 Q&D async:false
选项,还有什么建议?
【问题讨论】:
我想你应该问问自己为什么需要在浏览器中同步调用某些东西。这些方法带有回调参数,当结果准备好时将调用该参数。 @MarekKowalski。是的,你完全正确。我对回调概念的理解相当肤浅。作业现在已经完成,我自己的答案在下面进行了相应的编辑。感谢您没有给出答案,而是让我提出正确的问题 - 所有科学的基础。 @MarekKowalski。忘了 - 写一个答案,你就得到了我的投票。干杯! =) 【参考方案1】:过了一会儿。研究和破解,这是我的解决方案:
使用$.ajax(async:false);
并在fork(网络工作者)中调用它以避免锁定。
它并不漂亮 - 但它有效。
仍然:有什么漂亮的解决方案吗?
编辑:那里有更漂亮的解决方案,它们实际上是解决方案,而不是我上面写的。它们被称为“回调”,直到刚才我还没有完全理解这个概念。如果您不想犯我的错误,请花几分钟 here 并为自己节省几个小时的痛苦。
【讨论】:
以上是关于$.couch.db().openDoc() 和 db.getDoc 是异步的,对吗?的主要内容,如果未能解决你的问题,请参考以下文章
csharp 例如-CSHARP-GroupDocs.AssemblyExamples-GenerateReport-GenerateBulletedListFromDatabaseinOpenDoc
csharp 例如-CSHARP-GroupDocs.AssemblyExamples-GenerateReport-GenerateBulletedListFromDatabaseinOpenDoc
csharp 例如-CSHARP-GroupDocs.AssemblyExamples-GenerateReport-GenerateNumberedListFromDatabaseinOpenDoc
csharp 例如-CSHARP-GroupDocs.AssemblyExamples-GenerateReport-GenerateNumberedListFromDatabaseinOpenDoc