Comments (7)
I added some internal logging to Q while debugging, where it would log each 'thenable' task and each executed one.
Before the first time a page load is attempted, there are 2 more thenables than tasks run, so it looks like it does stall at some point.
Also, I moved the declaration of flushing to outside the nextTick function, so that it is accessible on the module level, and added Q.isFlushing = function(){return flushing;}
Then when I reproduced the issue again, was able to check and verify - it was stuck flushing. After all tasks in Q have completed, flushing should be false.
I also tried to log the rejections but there weren't any to speak of- at least none that I could successfully log.
I'm in Tel Aviv, Israel, so I would be 10 hours ahead of your time.
i would be more than happy to let you connect to me via TeamViewer or something similar so that you can see the issue reproduced (it's just a difficult scenario to reproduce when you try.. much easier to reproduce when you don't want it to happen ;) ).
i'll check back here tomorrow morning, so if you're interested, I'll stay late to connect with you due to the timezone differences.
-Etai
from asap.
@dtpx No need to stay late. At some point, I’ll either try to reproduce or send you a patch that might address the issue for you to verify.
from asap.
I think the fix is pending at https://github.com/kriskowal/asap/pull/22/files#diff-eb6974d7d0aacfb5eeba15f92952d63cR109
from asap.
@rkatic, I'm making the changes in Q to reflect that pull req. and testing, I'll let you know if this addresses the issue.
from asap.
It's not fixing the issue. I'm still able to get to a state where Q stalls.
I'm trying to understand how this can possibly happen and why only in safari..
Is there a way I can see the actual promises in the queue?
I'm currently going to try to make the tasklist doubly linked, and expose it so that I can inspect it when this happens... if you have a better idea for how to debug it I'm open to more suggestions.
from asap.
any news on this issue?
from asap.
See: #41
from asap.
Related Issues (20)
- Browserify Support HOT 15
- Cross library interleaving can cause node 10's nextTick limit to be hit. HOT 1
- Publish a new version HOT 4
- function to change rawAsap.capacity value must be added HOT 3
- Consider using Promise.prototype.then HOT 4
- asap queue can be effectively overflown (using [email protected]) HOT 2
- Usability in development mode with thrown errors HOT 5
- Browser field contains invalid route in npm HOT 8
- Microtask queue can be made faster HOT 4
- asap uses timer, not MutationObserver, in Safari HOT 1
- react-native throw Error when importing asap HOT 8
- Chrome + postMessage = slow HOT 1
- Source is poinitng to internal uber repo HOT 3
- npm published version 2.05 is not in git HOT 1
- Browser-asap requiring wrong raw file (non-browser version). HOT 4
- Does asap have an ECCN? HOT 2
- Contributors? HOT 1
- Use queueMicrotask? HOT 2
- esbuild fails: "browser" field is not according to spec
- TypeError: t.observe is not a function. (In 't.observe(l,{characterData:!0})', 't.observe' is undefined) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asap.