javascript - Promise într-un ciclu

În codul următor, am un ciclu infinit și nu știu de ce se întâmplă acest lucru. Cea mai bună presupunere a mea este că, deoarece funcția din interior este async, ciclul nu așteaptă pentru ea și astfel ciclul nu se oprește niciodată. Care este cel mai bun mod de a rezolva această problemă?

var generateToken = function(userId) { return new

Citeste mai mult →

javascript - promisiunile ES6 ascund erorile de tip

Vreau ca browserul să afișeze un mesaj de eroare atunci când apare o eroare de tip. erori precum nu se poate citi proprietatea ceva din undefined sau referință undefined.

new Promise(function(resolve,reject){ // do stuff ... reject('something logical is wrong'); }).catch(e => console.e

Citeste mai mult →

javascript - Care este valoarea de rezolvare a unui Promise înlănțuit dacă un handler then nu returnează nimic?

Dacă un handler then nu are o instrucțiune return, promisiunea rezultantă înlănțuită primește valoarea undefined în Bluebird. Dar nu pot vedea nicăieri că acest lucru este specificat în Promises/A+ sau în altă parte? Se poate conta pe acest comportament?

Iată un program de test:

var Promise = require('bluebird'); var p = Promise.resolve('test'); p.then(function(s) { console.log('s1='+s); // no return }).then(function(s) {

Citeste mai mult →

javascript - Cum să faci ca promise.all să aștepte pentru promise.all încorporat?

Așadar, am o problemă cu Promisiunile JavaScript. Folosesc implementarea nativă pentru a reduce dependențele.

Un exemplu ilustrativ a ceea ce am nevoie.

Am nevoie să obțin liste de cărți, autori de cărți și achiziții. De asemenea, am nevoie de un profil al autorului pentru fiecare

Citeste mai mult →

javascript - aserțiunea mocha js rămâne blocată atunci când se folosește promisiunea?

"use strict"; let assert = require("assert"); describe("Promise test", function() { it('should pass', function(done) { var a = {}; var b = {}; a.key = 124; b.key = 567; let p = new Promise(function(resolve, reject) { setTimeout(function() { resolve(); }, 100) }); p.then(function success() { console.log("success---->", a, b); assert.deepEqual(a, b, "response doesnot match"); done(); }, function

Citeste mai mult →

javascript - Probleme cu Node JS Async Promise.All

Încerc să execut o rutină asincronă pentru o mulțime de elemente dintr-o listă pe care o iau dintr-o bază de date, dar am dificultăți să înțeleg cum funcționează promise.all și ce face acesta.

Iată codul pe care îl folosesc acum:

/** * Queues up price updates */ function updatePrices() { console.log("~~~ Now updating al

Citeste mai mult →

javascript - Secvență de promisiuni pentru array dinamic

Obțin un array dinamic (numărul de promisiuni se poate schimba la fiecare rulare) de promisiuni. Acum vreau ca după fiecare rezolvare sau respingere să gestionez promisiunea returnată înainte ca array-ul de promisiuni să fie terminat.

Încerc cu promise all, dar continuă după ce toate promisiunile s-au încheiat.

Citeste mai mult →

javascript - De ce permite Promise.all() obiecte care nu sunt Promise?

De ce permite Promise.all() ca orice obiect să fie transmis ca un iterable?

exemplu (jsfiddle: https://jsfiddle.net/npqgpcud/6/):

var promise1 = "one"; var promise2 = 2222; var promise3 = new Promise(function (fulfill, reject) { fulfill("three"); }); Promise.all([promise1, promise2, promise3]).t

Citeste mai mult →

javascript - Funcția Promise.all() execută un array de funcții sau acestea se execută când le pui în array?

Deoarece await nu funcționează în interiorul Array.map sau Array.reduce, poți face ceva de genul următor sau ar fi considerat abuz de Promise.all? În mod normal, neo4j.session() ar fi așteptat

Citeste mai mult →

javascript - Există o modalitate de a returna o valoare cu async/await în loc de un Promise? Ca o funcție sincronă?

În primul rând, sunt familiarizat cu conceptul de funcție asincronă/sincronă. De asemenea, există multe întrebări legate de a mea. Dar nu îmi pot găsi răspunsul nicăieri.

Deci întrebarea este: Există o modalitate de a returna o valoare în loc

Citeste mai mult →