Skip to content
  • 0 Votes
    1 Posts
    435 Views
    No one has replied
  • 1 Votes
    4 Posts
    5k Views
    romsharkovR

    After a detailed research of various asynchronous techniques such as Promises, Futures, Tasks and Reactive Extensions we came with a new paradigm that solved all our asynchronous problems very elegantly: The Streams Paradigm

    It's inspired by the reactive approach, though superior in many aspects such as abstraction, abortion, resumables etc.

    It's a completely rethought way of writing declarative code, making complex asynchronous operations and transactions (and probably even concurrency) a piece of cake! Nearly everything can be represented, thus abstracted away by a stream..

    UI Elements Sockets Requests (HTTP etc.) Calculations the list goes on...

    This way streams become a consistent protocol of asynchronous and concurrent communication between various application components ranging from the UI frontend to the networked backend.

    We published the first beta release of a QML implementation with a working example aboard, be sure to check it out!

    https://qbeon.github.io/QuickStreams/

  • 3 Votes
    8 Posts
    5k Views
    benlauB

    @cp_mark QML don't support this kind of syntax. So it should either to create signals like success / fail or check the value during the callback function:

    onDone: { if (success) { signalArgPromise.resolve(); } else { signalArgPromise.reject(); } }