Ich habe ein dict wie folgt aus:NodeJS parallel mit Versprechen
{go: ['went', 'run'], love: ['passion', 'like']}
Der Wert eines Schlüssels seine Synonyme ist. Und 'getSynonymWords (Wort)' ist eine asynchrone Funktion, die eine Verheißung zurückgibt, deren Wert eine Liste von Synonymen ist, die dem übergebenen Parameter entsprechen. Wie kann ich Schleife durch das Objekt ein anderes Objekt rekursiv wie folgt zu erhalten:
{went: [], run: [], passion: [], like: []}
Das ist mein Stück Code:
function getRelatedWords(dict) {
return new Promise(function(resolve) {
var newDict = {};
for(var key in dict){
if (dict.hasOwnProperty(key)) {
var synonyms = dict[key];
Promise.map(synonyms, function (synonym) {
return getSynonymWords(synonym).then(function (synonyms) {
newDict[synonym] = synonyms;
return newDict;
});
}).then(function() {
resolve(newDict);
});
}
}
});
}
Es ist falsch, da einige Aufgaben nicht fertig sind, aber ich don‘ Ich weiß, wie man Aufgaben parallel verschachtelt mit Versprechungen ausführt. Ich benutze die Bluebird-Bibliothek. Kannst du mir helfen?
Javascript ist single-threaded - so gibt es keine 'parallel' –
Vielleicht ist es ein Teil von Bluebird, ich weiß es nicht, aber Promise.map ist keine Funktion in Vanille JS. –
@BrandonNozakiMiller - Bluebird hat viel Zucker –