0
저는 그래프 서버를 만들고 있는데, 리졸버 중 하나는 aws API에서 가져온 URL을 반환해야합니다. 약속을 몇 시간 만에 시도했지만 비동기가 기다리고 있지만 아직까지는 아무 것도 작동하지 않았습니다.자바 스크립트 및 그래프/노드에서 약속 기다리기
코드 i에서 다음과 같은 일이 발생합니다. 1) aws api를 호출하고 콜백에 서명 된 URL을 가져옵니다. 2) graphql resolver 함수에서 해당 URL을 반환하고 싶습니다. - getSignedURL
제 질문은 : resolver 함수가 다른 함수 콜백에있는 결과를 반환하도록하려면 어떻게해야합니까?
어떤 도움을 주셔서 감사합니다! CLASS S3Store IN
var s3 = new aws.S3();
newSignedUrl(callback){
var params = {
Bucket: 'testBucket28993746',
Key: uuid.v4(),
Expires: 100,
ContentType: 'image/jpg'
};
s3.getSignedUrl('putObject', params, (err, signedURL)=>{
callback(err,signedURL);
});
}
Graphql의 해결
getSignedURL(){//TODO: more secure, require auth first
let newURL = null;
s3store = new S3Store();
s3store.newSignedUrl((err,result)=>{
if(err){
console.log(err)
newURL = {}
} else{
console.log(result);
newURL = result;
}
});
return newURL;
},
내가 graphql 엔드 포인트로 전화를 걸, 난 다음 얻을 :
{
"data": {
"getSignedURL": null
}
}
그렇지 않으면이 단지 중복 당신이 약속 시도 무엇을 우리에게 보여주십시오 [내가 어떻게 변환합니까을 S3Store 약속하는 기존 콜백 API?] (https://stackoverflow.com/q/22519784/1048572) – Bergi