Giter VIP home page Giter VIP logo

Comments (8)

goopi avatar goopi commented on July 23, 2024 1

Same problem here.
One way to get each task result:

[[BFTask taskForCompletionOfAllTasks:tasks] continueWithBlock:^id(BFTask *task) {
    for (int i = 0; i < tasks.count; ++i) {
        NSLog(@"%@", [tasks[i] result]);
    }
    return nil;
}];

from bolts-objc.

nlutsenko avatar nlutsenko commented on July 23, 2024 1

@gazialankus
666ec8587d11b175c1b44dbcfec1df4bcd4a0a455737ca75eb3939a766fc0d31

from bolts-objc.

adriendulong avatar adriendulong commented on July 23, 2024

I would like the same thing.
It would be really useful to get the results of my parallel tasks.
Right now I can't use it because I don't get any result.

Thanks !

from bolts-objc.

rcbello avatar rcbello commented on July 23, 2024

How about this solution:

-(BFTask *)parallelTasksWitResult{

BFTaskCompletionSource *compSource = [BFTaskCompletionSource taskCompletionSource];

NSMutableDictionary *resultInfo = [NSMutableDictionary dictionary];
NSMutableArray *wrapperTasks = [NSMutableArray array];
NSArray *tasksToExecute = // tasks to execute

for (BFTask *task in tasksToExecute) {
    [wrapperTasks addObject:[task continueWithBlock:^id(BFTask *task) {

        //update result info

        return nil;
    }]];
}

[[BFTask taskForCompletionOfAllTasks:wrapperTasks] continueWithBlock:^id(BFTask *task) {
    [compSource setResult:resultInfo];
    return nil;
}];

return compSource.task;

}

from bolts-objc.

bklimt avatar bklimt commented on July 23, 2024

You have access to all of the BFTasks you waited on, so you can get their results, as @goopi demonstrated.

from bolts-objc.

gazialankus avatar gazialankus commented on July 23, 2024

In a task chain, the task above has a task array in its closure. The task below needs to get the results of the task array from task.result, but it can't. It can't access the task array either, because the task array is in the scope of the above closure.

In a task chain like this, we don't have access to the BFTasks that we waited on.

Or, you may want to get the task that taskForCompletionOfAllTasks gives, and send it somewhere else in your project. Sending the task array along with it is not a good solution. It's a shame that this issue is closed.

The analogous Parse.Promise.when([p1, p2]).then(f) passes the result array to f. This is the expected behavior. Respectfully summoning the top contributor @nlutsenko

from bolts-objc.

nlutsenko avatar nlutsenko commented on July 23, 2024

This issue is probably actually resolved, since we have taskForCompletionAllTasksWithResults: now, which does exactly what you are describing - provides an array of results on successful completion of all tasks. Header reference here

from bolts-objc.

gazialankus avatar gazialankus commented on July 23, 2024

OOH my bad! Sorry about that, and thank you for this awesome piece of software your highness :)

from bolts-objc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.