Node js асинхрон



  • Подскажите, пытаюсь справится с функцией перевода, но не работает
    вот код с справочника

    const translate = require('google-translate-api');
    
    translate('Ik spreek Engels', {to: 'en'}).then(res => {
        console.log(res.text);
        //=> I speak English
        console.log(res.from.language.iso);
        //=> nl
    }).catch(err => {
        console.error(err);
    });
    

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

    const translate = require('google-translate-api');
    
    await (new Promise((resolve, reject) => {
    translate('Ik spreek Engels', {to: 'en'}).then(res => {
        console.log(res.text);
        //=> I speak English
        console.log(res.from.language.iso);
        resolve()
    }).catch(err => {
        console.error(err);
    });
    }));
    

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



  • @iptips,

    const translate = require('google-translate-api');
    
    await (new Promise((resolve, reject) => {
        translate('Ik spreek Engels', {to: 'en'}).then(res => {
            console.log(res.text);
            //=> I speak English
            console.log(res.from.language.iso);
            //=> nl
            resolve()
        }).catch(err => {
            console.log(err.code);
            resolve()
        });
    }));
    
    


  • @GhostZ said in Node js асинхрон:

    const translate = require('google-translate-api');

    await (new Promise((resolve, reject) => {
    translate('Ik spreek Engels', {to: 'en'}).then(res => {
    console.log(res.text);
    //=> I speak English
    console.log(res.from.language.iso);
    //=> nl
    resolve()
    }).catch(err => {
    console.log(err.code);
    resolve()
    });
    }));

    спасибо, работает но оказалось что модуль устарел и не работает с гугл


Log in to reply
 

  • 1
  • 2
  • 9
  • 6
  • 3
  • 2
  • 2
  • 4