异步/等待 JQuery 文档就绪

Ven*_* 97 9 javascript jquery async-await jquery-3

它可以与 JQuery 一起使用document.addEventListener("DOMContentLoaded", async () => {}),但我很好奇让它与 JQuery 一起使用。

而且,我想要使用 Async/Await,而不是 Promise,因为稍后我将需要 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;
}
Run Code Online (Sandbox Code Playgroud)

Ven*_* 97 13

该问题是由于 JQuery 版本 3.2.1 引起的,也可能在某些较低版本中引起。$(document).ready(async function() {}) 不过在以后的版本中使用还是可以的。

$(document).ready( handler ) 已被弃用,如下所述@Phil。

$(handler) 建议使用。jQuery 文档

  • 仅供参考,“$(document).ready( handler )”语法已弃用。[jQuery 文档](https://api.jquery.com/ready/#ready-handler) 中的建议是使用 `$( handler )` (2认同)