代码之家  ›  专栏  ›  技术社区  ›  R. Kohlisch

节点js中的异步/等待提取

  •  1
  • R. Kohlisch  · 技术社区  · 7 年前
    const fetch = require("node-fetch"); 
    
    async function getPokemon() {
      const response = await fetch('https://pokeapi.co/api/v2/pokemon/1');
      console.log(response);
      return response;
    }
    
    getPokemon();
    

    我不确定这是否有效。 我回来了:

    Response {
      size: 0,
      timeout: 0,
      [Symbol(Body internals)]:
       { body:
          Gunzip {
            _readableState: [ReadableState],
            readable: true,
            _events: [Object],
            _eventsCount: 7,
            _maxListeners: undefined,
            _writableState: [WritableState],
            writable: true,
            allowHalfOpen: true,
            _transformState: [Object],
            bytesWritten: 0,
            _handle: [Zlib],
            _hadError: false,
            _writeState: [Uint32Array],
            _outBuffer:
             <Buffer 7b 22 61 62 69 6c 69 74 69 65 73 22 3a 5b 7b 22 61 62 69 6c 69 74 79 22 3a 7b 22 6e 61 6d 65 22 3a 22 63 68 6c 6f 72 6f 70 68 79 6c 6c 22 2c 22 75 72 ... >,
            _outOffset: 0,
            _level: -1,
            _strategy: 0,
            _chunkSize: 16384,
            _defaultFlushFlag: 2,
            _finishFlushFlag: 2,
            _nextFlush: -1,
            _info: undefined },
         disturbed: false,
         error: null },
      [Symbol(Response internals)]:
       { url: 'https://pokeapi.co/api/v2/pokemon/1',
         status: 200,
         statusText: 'OK',
         headers: Headers { [Symbol(map)]: [Object] } } }
    

    这就是我要找的东西吗?还是这只是我回来的承诺?

    https://pokeapi.co/

    height:7
    held_items:
    id:1
    is_default:true
    location_area_encounters:"https://pokeapi.co/api/v2/pokemon/1/encounters"
    name:"bulbasaur"
    order:1
    name:"bulbasaur"
    url:"https://pokeapi.co/api/v2/pokemon-species/1/"
    // and more
    

    我不确定问题可能是什么,也许我误解了节点中的异步等待?很抱歉是初学者,提前谢谢!

    1 回复  |  直到 7 年前
        1
  •  43
  •   Quentin    6 年前

    这就是我要找的东西吗?

    它是响应对象。

    您需要从响应对象中提取响应体并将其解析为JSON的结果。

      const response = await fetch('https://pokeapi.co/api/v2/pokemon/1');
      const data = await response.json();
      console.log(data); 
    

    不,你 await 他违背了诺言。