我有3个任务:
private async Task<Cat> FeedCat() {}
private async Task<House> SellHouse() {}
private async Task<Tesla> BuyCar() {}
Run Code Online (Sandbox Code Playgroud)
他们都需要在我的代码可以继续之前运行,我也需要每个代码的结果.结果没有任何共同之处
如何调用并等待3个任务完成然后获得结果?
我有一系列的键导致我的社交网络的帖子对象像/ posts/id /(发布信息)
当我加载帖子时,我使用observeSingleEventOfType(.Value)方法加载/发布/ 0然后/ posts/1等.
我使用lazyTableView一次加载30并且速度很慢.有没有什么方法可以使用其中一种查询方法或其他方法使其更快,即使我必须重构我的JSON树中的数据.
我来自Parse重新实现我的应用程序,到目前为止,经验非常好.只有这一点我有点坚持.在此先感谢您的帮助!
编辑:
func loadNext(i: Int) {
// check if exhists
let ideaPostsRef = Firebase(url: "https://APPURL")
ideaPostsRef.childByAppendingPath(i.description).observeSingleEventOfType(.Value, withBlock: {
(snapshot) in
if i % 29 == 0 && i != 0 && !self.hitNull { return }
// false if nil
// true if not nil
if !(snapshot.value is NSNull) {
let postJSON = snapshot.value as! [String: AnyObject]
print("GOT VALID \(postJSON)")
let post = IdeaPost(message: postJSON["message"] as! String, byUser: postJSON["user"] as! String, withId: i.description)
post.upvotes …Run Code Online (Sandbox Code Playgroud) 在Scala中有一个Promise类,可用于手动完成Future.我正在寻找C#的替代品.
我正在编写测试,我希望它看起来与此类似:
// var MyResult has a field `Header`
var promise = new Promise<MyResult>;
handlerMyEventsWithHandler( msg =>
promise.Complete(msg);
);
// Wait for 2 seconds
var myResult = promise.Future.Await(2000);
Assert.Equals("my header", myResult.Header);
Run Code Online (Sandbox Code Playgroud)
我知道这可能不是C#的正确模式,但我无法找到一种合理的方法来实现同样的东西,即使是有些不同的模式.
编辑:请注意,这async//await没有帮助,因为我没有任务等待!我只能访问将在另一个线程上运行的处理程序.
目前,Firebase支持平面数据布局的多路径数据更新.但是,在获取数据时,是否可以使用类似的方法从Firebase中的多个位置获取多路径数据?
例如,我需要将一些数据连接在一起,我的当前代码如下所示:
ref.child('data_1/').once('value', function (snapshot) {
var test_string_1 = snapshot.val();
ref.child('data_2/').once('value', function (snapshot) {
var test_string_2 = snapshot.val();
//...etc
});
});
Run Code Online (Sandbox Code Playgroud)
当必须从多个节点获取数据时,这种嵌套方法非常深入.所以我想知道是否有更好更快的方法,如多路径提取,从多个位置获取数据.