首页 > 解决方案 > 从函数 a 传递函数 b 中变量的值

问题描述

我有一个函数 A,我希望它使用B 调用函数await函数 A有一个变量var imageURL,我如何在函数 B中调用它- "data": "{\n\t\"url\":\"https://i.ibb.co/1b5wYNp/sa.png\"\n\t\n}\n"代替硬编码的 url。

function A() {
  var encodedImage = "iVBORw0KGgoAAAANSUhEUgAAAFA";
  console.log("upload pic");
  // Create a root reference
  var storageRef = firebase.storage().ref().child('image4.jpeg');
  const uploadTastk = firebase.storage().ref().child('image4.jpeg').putString(encodedImage, 'base64', {
    contentType: 'image/jpeg'
  })
  uploadTastk.then(
    (response) => {
      console.log('image upload success')
      console.log(response);
      uploadTastk.snapshot.ref.getDownloadURL().then(function(downloadURL) {
        console.log("File available at", downloadURL);
        var imageURL = downloadURL;
        await B();
      });
    },
    (failedReason) => {
      console.log('image upload failed')
    }
  )
}

async function B() {
  var settings = {
    "async": true,
    "crossDomain": true,
    "url": "https://centralindia.api.cognitive.microsoft.com/face/v1.0/detect?returnFaceId=true&recognitionModel=recognition_02&returnRecognitionModel=false&detectionModel=detection_01",
    "method": "POST",
    "headers": {
      "ocp-apim-subscription-key": "f4446c96ac3440c0b3d51093ce12d558",
      "content-type": "application/json",
      "host": "centralindia.api.cognitive.microsoft.com",
      "cache-control": "no-cache",
      "postman-token": "106bce66-4936-9191-5835-c3abb85433e2"
    },
    "processData": false,
    "data": "{\n\t\"url\":\"https://i.ibb.co/1b5wYNp/sa.png\"\n\t\n}\n"
  }

  $.ajax(settings).done(function(response) {
    console.log(response);
  });
}

标签: javascriptjquery

解决方案


使用B(imageURL)并将参数添加到Bas async function B(imageURL)

将您的价值分配更新"data"为如下所示。

"data" : '{ "url" : "' + url + '" }

此外,您可以使用Template literals (Template strings)如下所示构建您的字符串。

"data" : `{ "url" : "${url}" }`

let url = "https://i.ibb.co/1b5wYNp/sa.png";

let data = '{ "url" : "' + url + '" }';
console.log(data);

// using Template literals (Template strings)
data = `{ "url" : "${url}" }`;
console.log(data);


推荐阅读