Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: properly await async functions and correct fetch usage #3

Merged
merged 1 commit into from
Oct 14, 2024

Conversation

omegaduncan
Copy link
Contributor

Added missing 'await' keywords, fixed typos in fetch options, correctly processed fetch responses with res.text(), and corrected form data methods to ensure proper execution. #2

代码修复说明:

  • 正确使用 await 关键字:

    • 问题:在调用异步函数 getToken() 时,缺少 await,导致获取不到实际返回值。
    • 修复:在调用时添加 await,以等待 Promise 完成:
      let [hash, uuid, time] = await getToken();
  • 修正拼写错误:

    • 问题:在 fetch 选项中,reponseType 拼写错误,应该为 responseType
    • 修复:更正拼写错误或移除该选项(使用默认值)。
  • 正确处理异步操作:

    • 问题:在获取响应数据时,直接使用 res.data 可能无法正确获取内容。
    • 修复:使用 await res.text() 获取响应的文本内容:
      const html = await res.text();
  • 修正表单数据的使用:

    • 问题:使用了错误的 FormData 方法,如 insert,标准方法应为 append
    • 修复:使用对象表示表单数据或使用 FormData.append() 方法。
  • 完善请求头信息:

    • 问题:请求头缺少必要的信息,或值的格式不正确。
    • 修复:添加必要的请求头,例如:
      headers: {
        "Authorization": `PPG ${uuid}:${hash}`,
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
        "Timestamp": time.toString(),
        "Device-Type": "pc",
        "X-Apigw-Partnerid": "papago"
      },
  • 增强错误处理和日志输出:

    • 问题:缺少对异常情况的处理,调试困难。
    • 修复:添加 try-catch 块和 console.log 语句,以便更好地调试和处理错误。
  • 一致使用 Async/Await:

    • 问题:其他异步操作未正确使用 await,可能导致未预期的行为。
    • 修复:在所有异步操作前添加 await,确保按顺序执行。
  • 处理响应格式:

    • 问题:尝试将 HTML 解析为 JSON,导致解析错误。
    • 修复:根据响应的实际格式,选择合适的解析方法,例如使用 res.text() 获取文本。

总结: 通过上述修改,解决了异步处理不当、拼写错误、方法使用错误和响应解析错误等问题,确保代码按预期运行。

版本 v1.1.0 的測試截圖:
測試失敗
此 PR 的測試截圖:
測試成功

Added missing 'await' keywords, fixed typos in fetch options, correctly processed fetch responses with res.text(), and corrected form data methods to ensure proper execution.
@omegaduncan omegaduncan mentioned this pull request Oct 7, 2024
@omegaduncan
Copy link
Contributor Author

Added missing 'await' keywords, fixed typos in fetch options, correctly processed fetch responses with res.text(), and corrected form data methods to ensure proper execution. #1 #2

代码修复说明:

  • 正确使用 await 关键字:

    • 问题:在调用异步函数 getToken() 时,缺少 await,导致获取不到实际返回值。
    • 修复:在调用时添加 await,以等待 Promise 完成:
      let [hash, uuid, time] = await getToken();
  • 修正拼写错误:

    • 问题:在 fetch 选项中,reponseType 拼写错误,应该为 responseType
    • 修复:更正拼写错误或移除该选项(使用默认值)。
  • 正确处理异步操作:

    • 问题:在获取响应数据时,直接使用 res.data 可能无法正确获取内容。
    • 修复:使用 await res.text() 获取响应的文本内容:
      const html = await res.text();
  • 修正表单数据的使用:

    • 问题:使用了错误的 FormData 方法,如 insert,标准方法应为 append
    • 修复:使用对象表示表单数据或使用 FormData.append() 方法。
  • 完善请求头信息:

    • 问题:请求头缺少必要的信息,或值的格式不正确。
    • 修复:添加必要的请求头,例如:
      headers: {
        "Authorization": `PPG ${uuid}:${hash}`,
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
        "Timestamp": time.toString(),
        "Device-Type": "pc",
        "X-Apigw-Partnerid": "papago"
      },
  • 增强错误处理和日志输出:

    • 问题:缺少对异常情况的处理,调试困难。
    • 修复:添加 try-catch 块和 console.log 语句,以便更好地调试和处理错误。
  • 一致使用 Async/Await:

    • 问题:其他异步操作未正确使用 await,可能导致未预期的行为。
    • 修复:在所有异步操作前添加 await,确保按顺序执行。
  • 处理响应格式:

    • 问题:尝试将 HTML 解析为 JSON,导致解析错误。
    • 修复:根据响应的实际格式,选择合适的解析方法,例如使用 res.text() 获取文本。

总结: 通过上述修改,解决了异步处理不当、拼写错误、方法使用错误和响应解析错误等问题,确保代码按预期运行。

版本 v1.1.0 的測試截圖: 測試失敗 此 PR 的測試截圖: 測試成功

@TechDecryptor TechDecryptor merged commit 492079c into TechDecryptor:main Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants