Cloudinary api - 解决承诺

2024-03-10

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

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

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

isUploaded('test');

但是,我想将结果布尔值传递给另一个函数。使用 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 Promise 有关。我似乎无法重组我的代码以使其工作。任何帮助将非常感激。


问题是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);
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cloudinary api - 解决承诺 的相关文章

随机推荐