Ich kämpfe, um die Syntax richtig für eine graphQL Resolver, die den Wert von einer Web-API erhalten, die asynchron abläuft, erhalten. Die Konsolenprotokollierung von Sounds zeigt meine Liste von Soundobjekten an, aber ich kann sie vom Resolver als Ergebnis der Abfrage nicht zurückgeben.graphQL Resolver wartet nicht auf Web-API zu vervollständigen
Ich habe eine Reihe von Dingen ausprobiert und viel gegoogelt, kann aber immer noch nicht die Zauberformel finden, um den Resolver auf die Ergebnisse der Webabfragen warten zu lassen (es braucht zwei, einen, um eine API-Verbindung herzustellen) um tatsächlich die Soundliste) zu holen: Bisher alles, was ich versucht habe (Dutzende von Varianten des Codes
var serviceProvider = require('provider-api)
Query: {
sounds:() => {
serviceProvider.connect('http://soundsource.foo', 'userName', 'pass')
.then (function (client) {
client.sounds.list()
.then (function (sounds) {
console.log('Got some sounds ' + sounds)
})
.catch(function (err) {
console.log('Error in sounds query ' + err)
})
})
return sounds
},
}
oben) wird in der gleichen Sache geführt: das zurückgegebene Objekt null
ist.
ich die gleiche Logik versucht hatte, ** außer ** I keine Rückkehr auf dem ersten Versprechen zu tun haben in der Kette. Doh !! Vielen Dank!! – capouch