Как вернуть переведенный текст JavaScript google Translate API

# #javascript #api #async-await #promise #google-translate

#язык JavaScript #API #асинхронное ожидание #обещать #google-перевод

Вопрос:

Я написал следующий код для перевода с арабского на английский, я хочу, чтобы функция принимала английский в качестве источника и возвращала переведенный текст,

может ли кто — нибудь помочь мне в этом?

 translateArtoEn(source) { let url = `https://translation.googleapis.com/language/translate/v2?key=${API_KEY}`; url  = 'amp;q='   encodeURI(source); url  = `amp;source=ar`; url  = `amp;target=en`;  console.log(url)   fetch(url, {  method: 'GET',  headers: {  "Content-Type": "application/json",  Accept: "application/json"  }  })  .then(res =gt; res.json())  .then((response) =gt; {  return response.data.translations[0]["translatedText"]  })  .catch(error =gt; {  console.log("There was an error with the translation request: ", error);  }); }     

Ответ №1:

Предоставленный вами код не вернет никакого значения, так как я предполагаю, что функция синхронна.

При этом вы можете использовать callback функцию для возврата желаемого результата после того, как родительская функция уже вернулась.

Пожалуйста, ознакомьтесь с приведенным ниже кодом для вашей справки:

 const fetch = require('node-fetch');  function main(){  var source = 'lt;your_desired_text_to_translategt;';  translateArtoEn(source,myDisplayer); }  function translateArtoEn(source,callback){  var API_KEY = 'lt;your_API_keygt;';  let url = `https://translation.googleapis.com/language/translate/v2?key=${API_KEY}`;  url  = 'amp;q='   encodeURI(source);  url  = `amp;source=ar`;  url  = `amp;target=en`;   fetch(url, {  method: 'GET',  headers: {  "Content-Type": "application/json",  Accept: "application/json"  }  })  .then(res =gt; res.json())  .then((response) =gt; {  callback(response.data.translations[0].translatedText)  })  .catch(error =gt; {  console.log("There was an error with the translation request: ", error);  }); }  function myDisplayer(result) {  // handle the result here  console.log("Translated text: ",result); }  if (require.main === module) {  main(); }  

В этом коде callback используется для передачи возвращаемого значения (после завершения выполнения родительской функции) другой функции, которая будет обрабатывать результат.