Aktywne Wpisy
Tak wyglądały kiedyś pociągi, teraz wydają się brzydkie ale mimo wszystko kojarzą mi się z młodzieńczym luzem i przygodą
#wykop30plus
#wykop30plus
źródło: temp_file5049304182362895122
Pobierz
wieszjo +34
Ej @programista_wykopek jeszcze raz się sprujesz do @szagatunia i ty już wiesz co ( ͡° ͜ʖ ͡°)
#famemma
#famemma





var url = "..."
function getArticle(uri) {
axios(uri).then( response => {
var html = response.data;
var doc = new JSDOM(html, {url: uri});
var article = new Readability(doc.window.document).parse();
return article;
})
}
var article = getArticle(url);
console.log(article)
Zamiast treść artykułu dostaje undefined. Nie ogarniam tego Promise w #javascript .
Jak to zrobić aby funkcja getArticle zwracała wartość. Dwie ostatnie linie to tylko wyciągniecie danych - taki debug. Funkcja getArticle będzie inaczej wywoływana, dlatego nie chce tego mieć asynchronicznie.
Dzięki za pomoc :)
#nodejs #naukaprogramowania
jeśli dodam return i przerobie ostatnie linie na
getArticle(url).then( result =>console.log(result)
);
to zadziała, ale w ten sposób nie mogę przypisać do zmiennej wyniku.
var a = 1;
var b = 2;
console.log(a);
console.log(b);
tu masz kod synchroniczny każdy z kroków wykonuje się jeden po drugim
zaloguje się 1, a potem 2
var a = 1;
var b = 2;
setTimeout(() => {
b = 10;
}, 1000);
setTimeout(() => {
console.log(b);
}, 2000);
console.log(a);
console.log(b);
tu masz kod synchroniczny i 2 funkcje wykonujące się asynchronicznie. Wykonają się dopiero
async function getArticle(uri) {return await axios(uri).then( response => {
var html = response.data;
var doc = new JSDOM(html, {url: uri});
var article = new Readability(doc.window.document).parse();
return article;
})
}
I również dostaje Promise { }
async await to jest taki sugarcoat na promisy aby wyglądały na funkcje synchroniczne aby to zadziałało musiałbyś użyć jeszcze await
var article = await getArticle(url);
dodatkowo musisz opakować tow funkcje również oznaczoną jako async
async function a() {
var article = await getArticle(url);
console.log(article)
}
a();
Takie coś nie działa.
var test = a();console.log(test);
Ja jestem trochę przyzwyczajony to innego asynchronicznego kodu i dla mnie await to znaczy, że czeka i nie pcha się dalej. https://bit.ly/34crpHB.
A tutaj idzie i tak jakby ignoruje to słowo await.
https://codesandbox.io/s/little-tree-2lwkr?file=/src/index.js
mam nadzieję, że teraz zobaczysz różnicę