如何在没有 async 的情况下编写 async fetch() ?

Red*_*aid 5 javascript autohotkey fetch promise async-await

我有一行使用await fetch()的代码。我正在使用一些调用eval("await fetch ...etc..." )的脚本注入,但问题是从eval()调用时不会执行wait

因此,目标是在不使用wait 的情况下重写这一行。怎么做?

( await fetch( ff_url, ff_params ) )
                                  .json()
                                  .then( data => window.items_list = data.items );
Run Code Online (Sandbox Code Playgroud)

更新:此代码与 AutoHotkey 一起使用。不需要将行分成两部分(在 JavaScript 或 AutoHotkey 中都没有拆分)来检查 fetch 是否已经完成,因为在我的情况下(AutoHotkey + JS)我认为定期验证 window.items_list 是否有值或仍然更简单未定义:D

PS 感谢您的回答,效果很好!

Ant*_*t P 5

如果问题只是你无法标记该方法,async那么标准的 Promise 语法就可以了:

fetch(ff_url, ff_params)
    .then(x => x.json())
    .then(data => window.myvariable = data.items);
Run Code Online (Sandbox Code Playgroud)

当然,您仍然应该确保调用者异步调用它并适当地处理结果(除非需要“即发即忘”)。