Comments (1)
Everything that happens after the promise is resolved (when the microtask fires) happens synchronously in nested functions, and is no different than if you were to do something like:
(async () => {
await delay(1000)
console.log(new Error().stack);
})()
Or more accurately:
const delay = (timeout) => new Promise((resolve) => {
setTimeout(resolve, timeout);
});
(async function mergeMapNext() {
await delay(1000);
rxjsLogic();
})();
function rxjsLogic() {
tapNext();
}
function tapNext() {
innerTapNext();
}
function innerTapNext() {
userProvidedFunction();
}
function userProvidedFunction() {
console.log(new Error().stack);
}
That said, I couldn't replicate the issue myself: https://replit.com/@benlesh/rxjs-issue-7442#index.js
And I also tried cloning your repository and checking on the same version of node. I couldn't reproduce the issue.
I would recommend that you look up "why is my stack trace missing in node?" because it seems to be a condition of errors being thrown after promise resolution in specific versions of node? Although I tried the same one and could reproduce the bug.
Regardless, this doesn't seem to have anything to do with RxJS, because we can't really control the call stack produced by new Error().stack
.
from rxjs.
Related Issues (20)
- '.now()' is not a function error is thrown when the value of DateTimestampProvider.delegate is not valid HOT 1
- TestScheduler expectObservable not respecting subscription marbles when using toEqual
- pipe expected 0 arguments HOT 5
- Incorrect @deprecated for fromEvent overloads HOT 2
- test issue
- test issue
- rxjs.dev very often inaccessible HOT 10
- export map means node always resolves CJS HOT 7
- RxJs ships generators instead of native async/await HOT 1
- bindCallback: resultSelector destructuring callback argument if it's array HOT 1
- `every` operator sending multiple values when re-entrant HOT 1
- [email protected] has peer deps?! Oops
- ObservableInput<T> should support Thennable<T>, not PromiseLike<T> HOT 1
- Delay, timer and possibly other operators have a maximum milliseconds value, even when date is passsed HOT 1
- Teardown and error/complete messages are out of order HOT 2
- Issue with catchError HOT 1
- Synchronous emit to `switchMap` during the processing of previous emit prevents the first from unsubscribing HOT 4
- False positive in deprecation with mergMap HOT 1
- it's possible to return an array in catchError() 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 rxjs.