gpt4 book ai didi

node.js - Cloudinary api - 解决 promise

转载 作者:行者123 更新时间:2023-12-04 02:05:32 27 4
gpt4 key购买 nike

我想编写一个返回 bool 值的函数,指示具有指定 public_id 的图像是否已存在于我的 Cloudinary 空间中。

我可以使用以下代码将结果记录到控制台:

function isUploaded(public_id) {
cloudinary.api.resource(public_id, function(response){
console.log(response.hasOwnProperty('public_id'));
});
};

isUploaded('test');

但是,我想将结果( bool 值)传递给另一个函数。使用 return 语句导致 { state: 'pending' } 被记录:

function isUploaded(public_id) {
return cloudinary.api.resource(public_id, function(response){
return response.hasOwnProperty('public_id');
});
};

console.log(isUploaded('test'));

这与 javascript Promises 有关。我似乎无法重组我的代码以使其工作。任何帮助将不胜感激。

最佳答案

问题是 cloudinary.api.resource 异步运行(这就是它需要回调函数的原因)。

您可以让您的 isUploaded 函数返回一个 Promise,一旦该回调被调用就会解析。

var cloudinary = require('cloudinary');

function isUploaded(public_id) {
return new Promise(function (resolve, reject) {
cloudinary.api.resource(public_id, function(response) {
var isUploaded = response.hasOwnProperty('public_id');
resolve(isUploaded);
});
});
};

isUploaded('test')
.then(function (result) {
console.log(result);
})

关于node.js - Cloudinary api - 解决 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701013/

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