getsentry / sentry-javascript

Official Sentry SDKs for JavaScript
https://sentry.io
MIT License
7.86k stars 1.55k forks source link

Support generator functions in `startSpan` APIs #10772

Open mydea opened 6 months ago

mydea commented 6 months ago

Today, we do not support providing generator functions as a callback to startSpan or startSpanManual.

This is fundamentally a bit tricky, first because it is a bit tricky (but probably possible?) to detect if a generator function has been provided as a callback. But more fundamentally, when using this in node, execution context handling will not work as expected inside of the generator function (which is a known node issue).

Still it's not unreasonable to want to use something like this:

function*() {
  yield startSpan({ name: 'my span' }, function*() {
    yield waitForSomeTask();
   });
}

We should find some way to support this, either inside of startSpan or through a dedicated helper like startSpanGenerator (naming is hard, but you get the point...).

AbhiPrasad commented 6 months ago

Related https://github.com/nodejs/node/issues/42237