Pesquisar neste blog

Mostrando postagens com marcador JavaScript. Mostrar todas as postagens
Mostrando postagens com marcador JavaScript. Mostrar todas as postagens

11/06/2023

Inserir linhas no Google Sheets com JavaScript

Objetivo : Inserir uma quantidade X de linhas por comando da Planilha_1 para a Planilha_2 de outra URL da web com JavaScript.

Código feito no Google Sheets

function myFunction() {
  var url2 = "Insira sua url aqui !";
  var QtdlinhasDesejada = 2;

  var spreadsheet = SpreadsheetApp.openByUrl(url2);
  //spreadsheet.getRange('1:1').activate();
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(),
QtdlinhasDesejada );
  //spreadsheet.getActiveRange().offset(0, 0, 1,
spreadsheet.getActiveRange().getNumColumns()).activate();//0 ,0, 1
  //spreadsheet.getRange('C9').activate();
 
};

Execução e saída gerada






05/08/2020

Async/Await 01 em JavaScript


function esperarPor(tempo = 2000) {
    return new Promise(function (resolve){
        setTimeout(() => resolve(), tempo )
    })
}

esperarPor(2000)
    .then(() => console.log('Excecutando promise 1...'))
    .then(esperarPor)
    .then(() => console.log('Excecutando promise 2...'))
    .then(esperarPor)
    .then(() => console.log('Excecutando promise 3...'))

    //Assíncrono
//Substitindo o código acima, método 1
async function executar() {
    esperarPor(1500)
    console.log('Async/Await 1...');

    esperarPor(1500)
    console.log('Async/Await 2...');

    esperarPor(1500)
    console.log('Async/Await 3...');
}

executar()
console.log();

//Método 2, código síncrono
async function executarNovamente(){
    await esperarPor(1500);
    console.log('Async/Await 1... método 2 ');

    await esperarPor(1500)
    console.log('Async/Await 2... método 2');

    await esperarPor(1500)
    console.log('Async/Await 3... método 2');
}

//executarNovamente()

Promise 05 em JavaScript

function funcionarOuNao(valorchanceErro) {

    return new Promise ((resolve , PromiseRejectionEvent=>{
        try{
            con.log('temp')
            if(Math.random() < chanceErro){
                reject('Ocorreu um ERRO !')
            }else{
                resolve(valor)
            }
        }catch(e){
            reject(e)
        }
    })
}

//gerando uma promessa que não foi tratada
funcionarOuNao('Testando...'0.9)
    .then(v => console.log(`Valor: ${v}`),
        err => console.log(`Erro esp.: ${err}`))
    
    //depois do cath não tem mais informação
    .catch(err => console.log(`Erro: ${err}`))//caso ocorra erro
    .then(() => console.log('Fim !'))


03/08/2020

Desafio Promise 1 em JavaScript

Objetivo: Encapsule dentro de uma promise a chamada do File System

const fs = require('fs')
const path = require('path')
const { resolve } = require('path')

function lerArquivo(caminho) {
    return new Promise(resolve =>{
        fs.readFile(caminhofunction(_conteudo) {//caminho como parâmetro
            resolve(conteudo.toString())//converte o conteúdo no formato String
        })
        console.log('Depois de ler');
    })
}

const caminho = path.join(__dirname'dados.txt')

lerArquivo(caminho)
    .then(conteudo => console.log(conteudo))
    //.then(conteudo => conteudo.split('\n'))
    //.then(linhas => console.log(linhas[1]))
    //.then(linhas => console.log(linhas.length));
    

Arquivo: dados.txt


02/08/2020

Promise 03 em JavaScript

//Objetivo: gerar numeros entre
function gerarNumerosEnte(minmax) {
    if(min > max){
        [maxmin] = [minmax]
        const [xy] = a
    }

    //valor aleatório
    return new Promise(resolve => {
        const fator = max - min + 1
        const aleatorio = parseInt(Math.random() * fator) +min
        resolve(aleatorio)
    })
}

gerarNumerosEnte(520).then(console.log)

gerarNumerosEnte(740)
    //composição de função
    .then(num => num * 10)//número multiplicado por 10
    .then(numX10 => `O número gerado foi ${numX10}`)
    .then(console.log)//imprimindo o valor




31/07/2020

Promise 02 em JavaScript

setTimeout(function(){
    console.log('1- Executando callback ...');

    setTimeout(function() {
        console.log('2- Executando o callBack...');

        setTimeout(function(){
            console.log('3- Novamente Executando o callback...');
        },2000)
    },2000)

}, 2000)//executa o callback depois de 2 seg



30/07/2020

Promise 01 em JavaScript

//Método 1
let p = new Promise(function(cumprirPromesa) {
    cumprirPromesa({
        x: 3,
        y: 4
    })
})
p.then(function(valor) {
    console.log('MÉTODO 1');
    console.log(valor);
    console.log(valor.x);//pegando apenas o valor x
})

//com vetor método 2
let q = new Promise(function(exibirPromesa){
    exibirPromesa(['Ana Paula','Aline','Juliana','Karolayne'])
})

q.then(function (imprimir){
    console.log(imprimir);
    console.log(imprimir[2]);//imprimir a posição 2
})

//método 3, reaproveitando o método 2
q.then((teste=> console.log('\n',teste));
q.then(novo => console.log(novo[1]));

//Método 4
let t = new Promise(function(exibirArray){
    exibirArray(['Meiryele','Geisiane','Laiane','Loiane'])
})

function primeiroElemento(array) {
    return array[0]
}

function primeiraLetra(string) {
    return string[0]
}

t

    .then(primeiroElemento)
    .then(primeiraLetra)
    .then(caracter => caracter.toLowerCase())//convertendo para minuscula
    .then(letraM => console.log(letraM));




29/07/2020

Async / Await em JavaScript

// sem promise...
const http = require('http');
const { reject } = require('lodash');

const getTurma = (letracallback=> {
    const url = `http://files.cod3r.com.br/curso-js/turma${letra}.json`
    return new Promise((resolvereject=>{
        http.get(urlres =>{
            let resultado = ''

            res.on('data'dados => {
                resultado += dados
            })

            res.on('end', () => {
                try{
                    resolve(JSON.parse(resultado))
                }catch(e){
                    console.log('Erro ao acessar !');
                    reject(e)
                }
            })
        })
    })
}

//Recurso em ES8
//Objetivo: simplificar o uso de promises ...
let obterAlunos = async() => {
    const ta = await getTurma('A')
    const tb = await getTurma('B')
    const tc = await getTurma('C')
    return [].concat(tatbtc)
}

obterAlunos()
    .then(alunos => alunos.map(a => a.nome))
    .then(nomes => console.log(nomes))
























Palavras chave:

Async / Attendre le JavaScript
Async / Čekejte na JavaScript
Async / המתן JavaScript
Async / wag op JavaScript
Async / Așteptați-i JavaScript

27/07/2020

Refatorando CallBacks para Promises em JavaScript

// sem promise...
const http = require('http');
const { reject } = require('lodash');

const getTurma = (letracallback=> {
    const url = `http://files.cod3r.com.br/curso-js/turma${letra}.json`
    return new Promise((resolvereject=>{
        http.get(urlres =>{
            let resultado = ''

            res.on('data'dados => {
                resultado += dados
            })

            res.on('end', () => {
                try{
                    resolve(JSON.parse(resultado))
                }catch(e){
                    console.log('Erro ao acessar !');
                    reject(e)
                }
            })
        })
    })
}

//dispara paralelamente
let nomes = []
getTurma('A').then(alunos => {
    nomes = nomes.concat(alunos.map(a => `A: ${a.nome}`))
    getTurma('B').then(alunos => {
        nomes = nomes.concat(alunos.map(a => `B: ${a.nome}`))
        getTurma('C').then(alunos => {
            nomes = nomes.concat(alunos.map(a => `C: ${a.nome}`))
            console.log(nomes)
        })
    })
})

 //todos os elementos em 1 único array
console.log();
Promise.all([getTurma('A'), getTurma('B'), getTurma('C')])
    .then(turmas => [].concat(...turmas))
    .then(x => console.log(x))

console.log();
Promise.all([getTurma('A'), getTurma('B'), getTurma('C')])
    .then(turmas => [].concat(...turmas))
    .then(turmas => alunos.map(aluno => aluno.nome))
    .then(nomes => console.log(nomes))
    .catch(e => console.log(e.message))

//Mensagem de erro caso o arquivo não exista    
//getTurma('D'.catch(e => console.log(e.message)))









26/07/2020

CallBacks Aninhadas em JavaScript

// sem promise...
const http = require('http')

const getTurma = (letracallback=> {
    const url = `http://files.cod3r.com.br/curso-js/turma${letra}.json`
    http.get(urlres => {
        let resultado = ''

        res.on('data'dados => {
            resultado += dados
        })

        res.on('end', () => {
            callback(JSON.parse(resultado))
        })
    })
}
let teste = []
getTurma('A'pessoas1 => {
    console.log(pessoas1);//todos os índices
    console.log('\n',pessoas1[0]);//1° índice
    console.log('\n',pessoas1[0].nome);// somente o nome do 1° índice
})


console.log();
let nomes = []
getTurma('A'alunos => {
    nomes = nomes.concat(alunos.map(a => `A: ${a.nome}`))
    getTurma('B'alunos => {
        nomes = nomes.concat(alunos.map(a => `B: ${a.nome}`))
        console.log(nomes);
        getTurma('C'alunos => {
            nomes = nomes.concat(alunos.map(a => `C: ${a.nome}`))
            console.log(nomes)
        })
    })
})



For of em JavaScript

const { map } = require("lodash");

for (let letra of "Blog "){
    console.log(letra);
}

const assutosEcma = ['Map''Set''Promise']
for (let i in assutosEcma){
    console.log(i);
}
console.log();

for (let assunto of assutosEcma) {
    console.log(assunto);    
}

const assuntosMap = new Map([
    ['Map', {abordado: true}],
    ['Set', {abordado: true}],
    ['Promise', {abordado: false}]
])
console.log();

//chaves e valores do array
for(let assunto of assuntosMap){
    console.log(assunto);
}
console.log();

for(let [chavevalorof assuntosMap){
    console.log(chave);
}
console.log();

//percorrendo somente as chaves
for(let chave of assuntosMap.keys()){
    console.log(chave);
}
console.log();

//desestruturando 1 array com chave e  valor
for(let [chvlof assuntosMap.entries()){
    console.log(chvl);
}
console.log();

const s = new Set(['a''b''c'])
for(let letra of s){
    console.log(letra);
}







Set em JavaScript

//Set não é um conjunto indexada e que não aceita repetição
const times = new Set()
times.add('Vasco')
times.add('São Pauo').add('Palmeiras').add('Corinthians')
times.add('Flamengo')
times.add('Vasco')//não vai adicionar, elemento repetido

console.log(times);
console.log(times.size);//tamanho
console.log(times.has('vasco'));//false
console.log(times.has('Vasco'));//true
times.delete('Flamento')//deletando Flamento
console.log(times.has('Flamento'));

//só vai adicionar 1 Lucas
const nomes = ['Raquel''Lucas''Julia''Lucas']
const nomesSet = new Set(nomes)
console.log(nomesSet);




Tagged Template 02 em JavaScript


function real(partes, ...valores) {
    const resultado = []
    valores.forEach((valorindice=>{
        valor = isNaN(valor) ? valor : `R$${valor.toFixed(2)}`
        resultado.push(partes[indice], valor)
    })
    return resultado.join('')
}

const preco = 29.99
const precoParcela = 11
console.log(real `1x de ${preco} ou 3x de ${precoParcela}.`);



Rest/Spread em JavaScript

//Operador ... rest(juntar)/spread(espalhar)
//usar rest com parâmetro de função

//usar spread com objeto
const funcioario = {
    nome: 'Henrique',
    salario: 12500.55
}

//cópia
const clone = {//espalha os elementos
    ativo: true,
    ...funcioario
}
console.log(clone);

const grupoA = ['João''Pedro''Glória']
//espalhando os atributos de 1 array dentro de outro array
const grupoFinal = ['Maria', ...grupoA'Rafael']
console.log(grupoFinal);



Revisão 03 em JavaScript

//ESB: Object.values/Object.entries
const obj = {a: 1b: 2c: 3}
console.log(Object.values(obj));
console.log(Object.keys(obj));
console.log(obj);
console.log(Object.keys(obj).entries(obj));
console.log(Object.entries(obj));//1 array de arrays com chave e valor

//Melhorias na Notação Literal
const nome = 'Carla'
const pessoa = {
    nome
    ola(){
        return 'Bem vindo ao JavaScript !'
    }
}
console.log(pessoa.nome' : ',pessoa.ola());

//Class
class Avo{}
class Pai extends Avo{
    falar(){
        return 'Olá eu sou herança !'
    }
}
console.log(new Cachorro().falar());


Revisão 02 em JavaScript

const { isNull } = require("lodash");

//Arrow Function
const soma = (ab=> a + b//retorna a + b
console.log(soma,'Soma = ',soma(57));

//Arrow Function(this)
//this esta associado ao local onde a função foi escrita
const lexico1 = () => console.log(this === exports);//this sempre apontará para exports
const lexico2 = lexico1.bind({})//forçando 1 barra, mas não irá funcionar
lexico1()
lexico2()

//parametro default
function log(texto = 'Node') {
    console.log(texto);
}

log();
log('Olá ! Bem Vindo ao JavaScript. ');
log(null);
log(isNull)

//Operador rest
function total(...numeros) {
    let total = 0
    numeros.forEach(n => total += n);
    return total
}

console.log('Total = '+total(2345));


Revisão 01 em JavaScript

{
    var a = 2
    let = 3
}
console.log(a);
//console.log(b);//não consegue acessar por estar reservada

//Template String
const produto = 'iPad'
console.log(`${produto} é muito caro !`);

//Destructuring
const [lek, ...tras] = "BLOG engenhariaCotidiana"
console.log(lek);
console.log(tras,'\n');

const[x, , y] = [1,23]
console.log(x,y);

//Desestruturar usa chaves
const {idadeinome} = {nome: 'Ana'idade: 9}
console.log(inome);




23/07/2020

Middlewares 01 em JavaScript


const passo1 = (ctxnext=>{
    ctx.valor1 = 'mid1'//adc dentro desse objeto
    next()
}

const passo2 = (ctxnext=>{
    ctx.valor2 = 'mid2'
    next()
}

const passo3 = ctx => ctx.valor3 = 'mid3'

const exec = (ctx, ...middlewares=>{
    const execPasso = indice =>{//executa o índice 
//se middlwares == true e índice middlw menor que o comprimento passado
        middlewares && indice < middlewares.length &&
            middlewares[indice](ctx, () => execPasso(indice +1))
    }
    execPasso(0)//dispara a execução
}

//vai juntar em 1 array
const ctx = {}
exec(ctxpasso1passo2passo3)//forma interativa
console.log(ctx);

//não executa porque o passo passo3 não chama os outros
exec(ctxpasso3passo2passo1)







Palavras chave:

JavaScript Middlewares 01
Прамежкавы JavaScript JavaScript 01
JavaScript Middlewares 01
JavaScriptミドルウェア01
JavaScript Middlewares 01