相关疑难解决方法(0)

等待具有不同结果的多个任务

我有3个任务:

private async Task<Cat> FeedCat() {}
private async Task<House> SellHouse() {}
private async Task<Tesla> BuyCar() {}
Run Code Online (Sandbox Code Playgroud)

他们都需要在我的代码可以继续之前运行,我也需要每个代码的结果.结果没有任何共同之处

如何调用并等待3个任务完成然后获得结果?

.net c# task-parallel-library async-await .net-4.5

205
推荐指数
7
解决办法
8万
查看次数

通过使用查询而不是反复观察单个事件,加快为我的社交网络应用程序提取帖子

我有一系列的键导致我的社交网络的帖子对象像/ 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)

ios firebase swift

88
推荐指数
1
解决办法
2万
查看次数

承诺相当于C#

在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没有帮助,因为我没有任务等待!我只能访问将在另一个线程上运行的处理程序.

c# future task promise async-await

57
推荐指数
4
解决办法
4万
查看次数

Firebase多路径获取数据

目前,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)

当必须从多个节点获取数据时,这种嵌套方法非常深入.所以我想知道是否有更好更快的方法,如多路径提取,从多个位置获取数据.

javascript firebase firebase-realtime-database

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