当前位置: 首页 > 知识库问答 >
问题:

Cloudinary api-解决promise

薛英卫
2023-03-14

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

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

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

isUploaded('test');

但是,我想将结果布尔值传递给另一个函数。使用返回语句会导致记录{state:'未决'}

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

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

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

共有2个答案

邴烨
2023-03-14

请注意,api.resource()是速率受限的(管理API的一部分),因此这不是一个“可扩展”的解决方案。

您可以执行HEAD请求并获得响应的statusCode——200表示资源存在于您的帐户中,404表示不存在。

比如-

var http = require('http')
var options = {method: 'HEAD', host:'res.cloudinary.com',path:'/<cloud_name>/image/upload/<yourimage.jpg>'} 
var req = http.request(options, function(res) {console.log(res.statusCode);});  
req.end();
牟慎之
2023-03-14

问题是cloudinary。应用程序编程接口。资源异步运行(这就是它需要回调函数的原因)。

您可以让您的isUploated函数返回一个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);
})
 类似资料:
  • 问题内容: 使用节点4.x。当您有什么正确的方法来解析数据并将其传递给下一个? 我想做这样的事情: 但是我不确定如何将数据发送到第二个。我不能先用。我知道我可以做到这一点: 但这似乎不是执行此操作的正确方法…正确的方法是什么? 问题答案: 但这似乎不是正确的方法。 确实,这是执行此操作的正确方法(或者至少 是 执行此操作 的 正确方法)。这是Promise的关键方面,它们是一个管道,数据可以由管道

  • 问题解决了在这种环境下

  • 给定一个整数序列作为一个数组,确定是否可以通过从数组中移除不超过一个元素来获得一个严格递增的序列。

  • Windows 用tutorial进行的操作 若要进行pull操作,请右击tutorial目录,并选择‘拉取’。 用tutorial进行的操作 在以下画面点击‘确定’。 用tutorial进行的操作 我们看到画面上的警告信息表示自动合并失败。请点击‘关闭’以退出窗口。 用tutorial进行的操作 若您确认变更,请点击‘Yes’。 用tutorial进行的操作 TortoiseGit告诉我们:因"

  • 在上一个页面我们提及到,执行合并即可自动合并Git修改的部分。但是,也存在无法自动合并的情况。 如果远程数据库和本地数据库的同一个地方都发生了修改的情况下,因为无法自动判断要选用哪一个修改,所以就会发生冲突。 Git会在发生冲突的地方修改文件的内容,如下图。所以我们需要手动修正冲突。 ==分割线上方是本地数据库的内容, 下方是远程数据库的编辑内容。 如下图所示,修正所有冲突的地方之后,执行提交。

  • 我们已经探索了 Python 语言中的许多部分,现在我们将通过设计并编写一款程序来了解如何把这些部分组合到一起。这些程序一定是能做到一些有用的事情。这其中的方法就是去学习如何靠你自己来编写一份 Python 脚本。 问题 我们希望解决的问题如下: 我想要一款程序来备份我所有的重要文件。 虽然这是一个简单的问题,但是其中并没有足够的信息有助于让我们开始规划一份解决方案。我们需要进行一些分析(Anal