相关疑难解决方法(0)

用于包装异步JavaScript函数以使其同步的模式

我正在使用JavaScript API,其中大多数函数都是异步的.API是WebKit JavaScript数据库API,它绑定到操作SQLite3数据库的功能子集.我理解设计决定使事情不同于阻止并提供响应式用户界面.在我的情况下,我知道我对异步API调用的使用将快速执行.由于这种情况,我想为我的开发人员提供一个更简洁,更易于使用的包装器API,强制同步调用.

这是异步调用

db.executeSql(sqlStatement, function(result) {
  // do something with result
});
Run Code Online (Sandbox Code Playgroud)

这就是我希望能够做到的

var result = dbWrapper.executeSql(sqlStatement);
// do something with result
Run Code Online (Sandbox Code Playgroud)

是否有设计模式/方式来做到这一点?编写或链接到代码示例是首选.目标平台/ broswer是iPhone上的Mobile Safari.

谢谢

javascript iphone safari design-patterns mobile-safari

16
推荐指数
3
解决办法
1万
查看次数

在C#中同步包装异步方法

我有一个第三方库,其中包含一个异步执行函数的类.该类继承自Form.该功能基本上基于存储在数据库中的数据执行计算.完成后,它会在调用表单中调用_Complete事件.

我想要做的是同步调用该函数,但是从非Windows窗体应用程序.问题是,无论我做什么,我的应用程序块和_Complete事件处理程序永远不会触发.从Windows窗体我可以通过使用"完整"标志和"while(!complete)application.doevents"来模拟同步运行的函数,但显然application.doevents在非Windows窗体应用程序中不可用.

有什么东西阻止我在Windows窗体应用程序之外使用类的方法(由于它继承自'Form')?有什么方法可以解决这个问题吗?

谢谢,迈克

c# asynchronous synchronous wrapper

7
推荐指数
2
解决办法
6510
查看次数