簡體   English   中英

如何在函數javascript / nodejs中返回函數?

[英]how to return a function inside a function javascript/nodejs?

我試圖返回我在getsignedurl中得到的URL。 當我嘗試此url1是不確定的

function getPublicUrl(filename) {
          var url1;
          var file = bucket.file(filename);

          file.getSignedUrl({
              action: 'read',
              expires: '03-17-2025'

          }, function (err, url) {
              if (err) {
                  console.error(err);
                  return;
              } else {
              url1  = url
                  console.log(url);

              }

          });
       return url1;
 }

然后在另一個函數中,我將調用getpublicurl

stream.on('finish', function() {
          req.file.cloudStorageObject = gcsname;
          req.file.cloudStoragePublicUrl = getPublicUrl(gcsname);

file.getSignedUrl似乎是一個異步函數,您可以在getPublicUrl使用ES6 Promise ,類似這樣

function getPublicUrl(filename) {
  return new Promise(function(resolve, reject) {
    var file = bucket.file(filename);
    file.getSignedUrl({
      action: 'read',
      expires: '03-17-2025'
    }, function(err, url) {
      if (err) {
        reject(err);
      } else {
        resolve(url);
      }

    });
  });
}

stream.on('finish', function() {
  getPublicUrl(gcsname).then(function(url) {
    console.log(url);
    req.file.cloudStorageObject = gcsname;
    req.file.cloudStoragePublicUrl = url;
  }).catch(function(err) {
    console.log(err);
  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM