Async/Await 与 JQuery 文档 READY

Posted

技术标签:

【中文标题】Async/Await 与 JQuery 文档 READY【英文标题】:Async/Await with JQuery document READY 【发布时间】:2021-12-27 05:41:56 【问题描述】:

它适用于document.addEventListener("DOMContentLoaded", async () => ),但我很好奇让它适用于 JQuery。

另外,我希望使用 Async/Await,不是 promises,因为稍后我将需要 promise 回调之外的变量。

let products = [];

$(document).ready(async function()       // Does not work with ASYNC
    await getProducts();                  // IF i dont use async await, products = empty
    products.forEach(product => console.log(product))
)

const getProducts = () => 
   // Ajax call to server
   // products = ajaxResult;              // asign variable to result
   // returns Promise;

【问题讨论】:

你说的“不起作用”是什么意思?另外... “稍后我将需要 promise 回调之外的变量” async / await 并不能为您解决这个问题 1.如果我在函数旁边使用 ASYNC,它根本不会运行。 2. 我的意思是我稍后会在程序中多次需要 products 变量。所以我希望先分配它,然后在不使用 getProducts().then() 的情况下轻松使用它 在这里工作正常~jsfiddle.net/d40cjmfL @Phil 我检查了我的 JQuery,它的版本是 3.2.1。会不会是因为这个? 似乎你已经找到了问题,它也无法在 JSFIddle 上使用该版本。适用于 3.3.1 及更高版本。问题转载在这里~jsfiddle.net/d40cjmfL/2 【参考方案1】:

问题是由于 JQuery 版本 3.2.1 和可能在某些较低版本中造成的。 $(document).ready(async function() ) 不过可以在以后的版本中使用。

$(document).ready( handler ) 已弃用为下面提到的@Phil。

$(handler)建议改用。 JQuery docs

【讨论】:

仅供参考 $(document).ready( handler ) 语法已弃用。 jQuery docs 中的建议是使用 $( handler ) @Phil 是的,谢谢,我忘了提。

以上是关于Async/Await 与 JQuery 文档 READY的主要内容,如果未能解决你的问题,请参考以下文章

使用 es7 async/await 检查 mongodb 中是不是存在文档

在猫鼬模式子文档中使用 async/await [重复]

拒绝回调,拥抱async await

promise与async和await的区别

js异步回调Async/Await与Promise区别 新学习使用Async/Await

async与await的使用