# #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
используется для передачи возвращаемого значения (после завершения выполнения родительской функции) другой функции, которая будет обрабатывать результат.