大佬教程收集整理的这篇文章主要介绍了在javascript中获取同步行为?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
现在,在这种情况下,我的偏好是一个同步查询方法,只有在完成时才会返回.然后我可以写出直线代码,一个接一个地查询10个项目中的每一个.
由于PhoneGap的异步性质(真的,我看到这遍遍JS),我被迫写了一个如下所示的野兽:
db.query( "SELECT...",success() { db.query( "SELECT...",success() { db.query( "SELECT...",success() { db.query( "SELECT...",success() { db.query( "SELECT...",success() { } } } } }
这只是我不得不去的一半(并大大简化了…)…当我在C中使用SQLite时,我可以简单地做一些类似的事情:
db.query( "SELECT...",resulta ); db.query( "SELECT...",resultB ); db.query( "SELECT...",resultC ); db.query( "SELECT...",resultD ); db.query( "SELECT...",resultE );
在我看来,成功处理方法是伟大的,当你只需要去1或2级深度…但是,当你需要更多的时候完全崩溃…
他们的图书馆还是图书馆的特色,使这更容易?
我最喜欢的是承诺我在几个事件中作了解决异步问题的承诺,作了介绍;您可以在SlideShare:Callbacks,Promises,and Coroutines (oh my!): The Evolution of Asynchronicity in JavaScript上查看我的幻灯片.它还解释了为什么需要异步,简而言之,因为JavaScript是单线程的.
对于您给出的特定示例,请查看幻灯片53及其旁边.简而言之,假设db.query返回一个承诺,它将如下所示:
db.query("SELECT...") .then(function (a) { return db.query("SELECT..." + a); }) .then(function (b) { return db.query("SELECT..." + b); }) .then(function (C) { return db.query("SELECT..." + c); }) .then(function (d) { return db.query("SELECT..." + d); }) .then(function (E) { return db.query("SELECT..." + E); });
当然,如果您不需要使用下一个查询的结果,则会变得更好:
Q.all([ db.query("SELECT..."),db.query("SELECT..."),db.query("SELECT...") ]).spread(function (a,b,c,d,E) { // ... });
以上是大佬教程为你收集整理的在javascript中获取同步行为?全部内容,希望文章能够帮你解决在javascript中获取同步行为?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。