gpt4 book ai didi

javascript - 等待 javascript 和 graphql/node 中的 Promise

转载 作者:太空宇宙 更新时间:2023-11-04 15:26:36 26 4
gpt4 key购买 nike

我正在构建一个 graphql 服务器,其中一个解析器应该返回从 aws api 获取的 URL。我已经尝试了几个小时的 promise 、异步等待,但还没有任何效果。

代码中发生的情况如下:1)我调用aws api,并在回调中获取签名的url。2)我想在 graphql 解析器函数中返回该 url - getSignedURL

我的问题是:如何使解析器函数返回我在另一个函数回调中得到的结果?

我将不胜感激任何帮助!

同类 S3Store

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

getSignedUrl(){

var params = {
Bucket: 'testBucket28993746',
Key: uuid.v4(),
Expires: 100,
ContentType: 'image/jpg'
};

return new Promise ((resolve, reject)=> { s3.getSignedUrl('putObject',params, (err, signedURL)=>{
if(err){
reject(err);
} else {
resolve( signedURL);
// console.log(signedURL);
console.log("in else ")


}


})
})
}

Graphql 解析器

getSignedURL(){

return new S3Store().getSignedUrl().then((url)=> {return url});
}

关于javascript - 等待 javascript 和 graphql/node 中的 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47122760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com