Can't seem to get fetch() working in my React Native app (should work out of the box). Using the new architecture with RN 0.70.4, TypeScript, and a setup to import ES modules.
Every time fetch() is called, this error is printed in the console:
'Tried to call timer with ID %s but no such timer exists.', 6
Using this test button:
      <Button
        title="Test"
        onPress={async () => {
          console.log('PRESSED');
          const promise = fetch('https://www.google.com');
          console.log('promise:', promise);
          try {
            const res = await promise;
            console.log('res:', res);
          } catch (err: unknown) {
            console.log('err:', err);
          }
        }}
      />
When pressed, only PRESSED appears in the console, with no other log messages. In the Flipper network panel, it looks like there is no network call made.
When I add import fetch from 'cross-fetch';, I get 2 lines of console output:
18:17:27.196  32561  appname  PRESSED
18:17:27.210  32561  appname  'promise:', { _h: 0, _i: 0, _j: null, _k: null }
but nothing after that; weirdly, though, the successful network call appears in the flipper network logs.
Any idea what's going on here?!
                        
You should use async/await with fetch. You are seeing
{ _h: 0, _i: 0, _j: null, _k: null }because network call takes some time to execute and you are not using async/await so the response is an unresolved promise. You can also use.thenand.catch