Giter VIP home page Giter VIP logo

Comments (2)

timcassell avatar timcassell commented on May 27, 2024

After thinking about it a little more, even with the change of single-await-unless-retained pattern, the main thread event queue can remain in tact. This way every continuation would happen on the main thread, even though promises are being used in background threads. That would then lead to the next feature of execution context switching, where the user can determine whether the continuation occurs on the main thread or background thread.

from protopromise.

timcassell avatar timcassell commented on May 27, 2024

Alternatively, instead of using Retain and Release on a single promise object, we could do exactly what UniTask does and add a Preserve method that returns a new promise that can have any amount of callbacks added until Forget is called on it. This is probably safer than having to remember to call Release and Forget and worrying about any sort of calling order for those. Then Retain and Release can be removed/deprecated.

[Edit] Although, with this method, it would become unsafe to return a preserved promise (the caller could call Forget prematurely). Hmm... But then again, it's not fool-proof to return a retained promise, either, and this method is at least easier to get right I think.

from protopromise.

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.