Как вернуть переведенный текст в node.js google-translate-api

Привет всем, я хочу передать переменную функции перевода google-translate-api. Как мне это сделать.

translate(txt, {from: 'en', to: 'ja'}).then(res => {
  var translated=res.text;
  return translated;
});
consol.log(translated);

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
927
2

Ответы 2

Вы пытаетесь зарегистрировать "переведенную" переменную в неправильной области. Вам следует переместить функцию console.info в метод обратного вызова (я имею в виду в функцию «затем»).

translate(txt, {from: 'en', to: 'ja'}).then(res => {
  consol.log(res.text);
});

Но если вы хотите использовать переведенное значение вне функции, вы можете использовать "await" (дополнительная информация: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await)

async function myTranslateFn(text){
   var res = await translate(text, {from: 'en', to: 'ja'}); 
   return res.text;
}

var result = myTranslateFn("flower");

Подскажите, пожалуйста, как получить переведенное текстовое значение из функции .then

Afzal 08.08.2018 08:02

Функция перевода @Afzal является асинхронной, поэтому вы можете использовать для нее ключевое слово "await". Я добавил к своему ответу еще один фрагмент кода

Sercan özen 08.08.2018 08:24

Привет, #Sercan ozen Еще один вопрос.

Afzal 08.08.2018 17:16

Да конечно, вы можете спросить

Sercan özen 08.08.2018 17:18

Как передать переменную в .then функция означает, как получить исходный текст, который будет переведен в функцию .then. в функции перевода цикла for получает случайное значение индекса массива, а затем переводит. Я хочу получить как переведенный текст, так и текст для перевода в функции .then. Вышеупомянутая функция работает для однократного выполнения, но не в цикле for. В цикле For txt, который мы передаем для перевода Получить только последнее значение индекса массива

Afzal 08.08.2018 17:22

Вы можете создать обещание, которое обертывает метод перевода, и вы можете отправить два параметра с помощью метода разрешения. developer.mozilla.org/tr/docs/Web/JavaScript/Reference/… PS: метод translate тоже обещание

Sercan özen 08.08.2018 20:20

@ Sercanözen, я хочу вызвать translate () в цикле. Я пробовал использовать async await, как вы показали .. Но получаю ошибку Плохой запрос ..

Jayna Tanawala 26.11.2019 10:40

@JaynaTanawala, вы передаете ограничение на использование api translate в своем цикле -> cloud.google.com/translate/quotas?hl=en. Возможно, вы сможете немного поспать между переводами.

Sercan özen 26.11.2019 13:52

@ Sercanözen, я вызываю api в setTimeout () на 5 секунд. Сначала я получаю журналы преобразованного текста, но после нескольких вызовов из translate () он начал бросать Слишком много запросов с кодом: неверный запрос.

Jayna Tanawala 27.11.2019 05:48

@JaynaTanawala Я думаю, это та же ошибка, поэтому речь идет об ограничениях api. Вам нужно увеличить таймаут.

Sercan özen 27.11.2019 08:43

Оберните вызов translate функцией и передайте обратный вызов внешней функции

callTranslate(txt, fn) {
    translate(txt, {from: 'en', to: 'ja'}).then(res => {
      fn(res.text);
    });
}

Теперь, когда вам нужно вызвать API перевода, сделайте это так:

callTranslate('yourText', (translated) => { console.info(translated); })
// add any logic in the callback itself if you want to further process the result

Другие вопросы по теме