代码之家  ›  专栏  ›  技术社区  ›  BeniaminoBaggins

我的javascript异步等待api请求返回一个奇怪的对象

  •  0
  • BeniaminoBaggins  · 技术社区  · 5 年前

    Frisbee :

    const Frisbee = require('frisbee')
    
    const api = new Frisbee({
      baseURI: 'http://192.168.1.8:4000',
      headers: {
        Accept: 'application/json',
        'Content-Type': 'application/json'
      }
    })
    
    export const handleSubmit = async (values): void => {
      Toast.show('Uploading Product', {
        duration: 3000,
        position: 30,
        shadow: true,
        animation: true,
        hideOnPress: true,
        delay: 0
      })
    
      try {
        const response = api.post('/products', {
          body: encodeAddProductAction(values)
        })
        if (response.err) throw response.err
        console.log(response)
      } catch (err) {
        console.error(err)
      }
    }
    
    export const encodeAddProductAction = (values: any) => {
      const submitPayload = Object.assign({}, values)
      Object.keys(submitPayload).forEach((key) => {
        if (key != 'Categories') {
          submitPayload[key] = encodeURIComponent(
            JSON.stringify(submitPayload[key])
          )
        } else {
          // values[key] = JSON.stringify(values[key])
          submitPayload[key] = submitPayload[key].join(',')
        }
      })
    
      return submitPayload
    }
    

    It控制台记录:

    enter image description here

    为什么我的API响应体被隐藏在一些奇怪的领域中,比如 _55 ?

    enter image description here

    0 回复  |  直到 5 年前
        1
  •  2
  •   Noob    5 年前

    你在用 async 但你不是 await

     try {
        const response = await api.post('/products', {
          body: encodeAddProductAction(values)
        })
        if (response.err) throw response.err
        console.log(response)
      } catch (err) {
        console.error(err)
      }
    

    Async 默认情况下返回 Promise

    推荐文章