Estoy usando la clave API de YouTube para obtener datos en la búsqueda.
const key = "[API Key]"; const url = "https://www.googleapis.com/youtube/v3/search"; $(document).ready(function () { const options = { part: ["snippet"], key: key, maxResults: 10, q: "developers", }; loadVids(); function loadVids() { $.getJSON(url, options, function (data) { const videos = data.items; console.log(videos); }); } });Está funcionando correctamente, pero quiero convertir $.getJSON() a async await usando javascript de vainilla. Por favor guíame como hacer esto.
Puede hacerlo definiendo una función Promise como:
function loadVids(){ return new Promise((resolve, reject)=>{ fetch('https://www.googleapis.com/youtube/v3/search', {method: 'GET', body: options}) .then(response => response.json()) .then(data => { console.log(data)); resolve(); }) .cache(err => reject()); }); }y luego esperar en él:
async function f1() { var x = await loadVids(); //other code... }Encontré una solución No hay necesidad de parte: ['fragmento']. Está funcionando correctamente sin usar eso.
const key = "[API Key]"; const url = "https://www.googleapis.com/youtube/v3/search"; const options = { part: ["snippet"], key: key, maxResults: 10, q: "developers", }; async function loadVids() { const res = await fetch( `${url}?maxResults=${options.maxResults}&q=${options.q}&key=${options.key}` ); //can also write the above line in this more sensible way //const res = await fetch( // `https://youtube.googleapis.com/youtube/v3/search?maxResults=${options.maxResults}&q=${options.q}&key=${options.key}`, // ); const data = await res.json(); console.log(data); } loadVids();Código más comprensible
const apiKey = "[API Key]"; const url = "https://www.googleapis.com/youtube/v3/search"; const options = { key: apiKey, maxResults: 10, q: "developers", }; const { key, q, maxResults } = options; async function loadVids() { const res = await fetch(`${url}?maxResults=${maxResults}&q=${q}&key=${key}`); const data = await res.json(); console.log(data); } loadVids();