0
비동기 적으로 발생하는 웹 API에서 가져온 값을 반환해야하는 graphQL 해결 프로그램에 대한 구문을 올바르게 얻으려고합니다. 사운드의 콘솔 로깅은 내 사운드 개체 목록을 잘 보여 주지만 쿼리 결과로 리졸버가 다시 돌려 줄 수는 없습니다.graphQL resolver는 웹 API가 완료 될 때까지 기다리지 않습니다.
저는 여러 가지 시도를 해 봤지만 광범위하게 인터넷 검색을 해왔지만 여전히 웹 쿼리의 결과를 기다리는 데있어 해결사를 얻는 마법의 주문을 찾을 수 없습니다 (API 연결을 설정하는 데는 둘, 다른 하나는 실제로) 사운드 목록을 가져올 수 :
는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
},
}
지금까지 내가 위의 코드)의 변형 (수십 시도 다 똑같은 결과는 : 반환 된 객체가 null
입니다.
를 참조하는
sounds
변수가 나는 동일한 논리를 시도했다로 ** 내가 처음 약속을 반환하지 않았다 제외 **, 혼동을 피하기 위해.then()
에서 매개 변수의 이름을 조정 고려 체인에 Doh !! 정말 고마워!! – capouch