angular – Chamando outro método após um subscribe chamado direto da página html

Estou desenvolvendo um aplicativo Angular, ele tem um botão com um evento de clique.
Mas o método é assíncrono usando subscribe.
Preciso obter o retorno para chamar outro método em outra classe.

Preciso chamar start() dentro de player.ts depois que getDate() for concluído em ListItems.ts

Já pensei em diversas alternativas, mas nenhuma me pareceu elegante.

player.html:

<button color="primary" (click)="listItems.getData()" ...

ListItems.ts:

    ...
    getData() {
        ...
        return this.http.get(url, { responseType: 'text' }).subscribe(res => {
            this.data = res;
        }
    }

player.ts:

export class Player {
    constructor(public listItems: ListItems) {
    }
    start() {
        let alldata = this.listItems.data.replace('n', '');
        ....
    }
    ....
}

aplicação web – Mostrar uma página php 1 vez por usuário após cadastro

Possuo um site em PHP com um formulário de cadastro e precisava que no fim do cadastro a pessoa seja redirecionada de /cadastro para /boas-vindas. Mas essa página de /boas-vindas deve ser exibida somente 1 vez por usuário (quando ele termina de fazer o cadastro).

Pesquisei algumas coisas e vi que dá pra utilizar cookies, porém até agora não consegui fazer funcionar, alguém consegue me dar uma luz?

Valeu!

php – Ocultar formulário com js após envio dos dados e mostrar botão de download que estava oculto

Atualmente tenho um site que contém uma seção com um formulário. Este formulário pede e-mail e nome da pessoa e ao dar submit envia um e-mail para a pessoa com o link de download do arquivo.

Eu gostaria de implementar um comando em que ao dar submit, o formulário sumisse e aparecesse no mesmo lugar outro conteúdo com o botão de baixar.

Como eu poderia fazer isso? Seria JQuery? Ajax? Me ajudem por favor…

javascript – Executar código após uma data definida

Olá, estou fazendo alguns testes e preciso que esse código execute após uma data definida:

const time = require ('time-stamp')//pacote para datas e horas
const fs = require('fs')
const currenttime = time('DDMMYYYYHHmm');//data e hora atual

const intervalObj = setInterval(() => {
    console.log('Ainda não é hora de apagar!')//usei um setInterval para executar até chegar a data
}, 1500); 

if (currenttime == '120320211830') {
    clearInterval(intervalObj);
    fs.unlink('./teste.json')
    console.log('APAGADO!')
    }//quando chegar na data que quero (12/03/2021 18:30) excluir o arquivo teste.json

Preciso que após uma data definida, usando o FS package, exclua o teste.json. Para isso tentei usar o time-stamp para definir o tempo atual e a data que quero que o arquivo seja excluído: (12/03/2021 18:30 formato DDMMYYYYHHmm)

10/03/2021 19:32 Ainda não é hora de apagar!
10/03/2021 19:32 Ainda não é hora de apagar!
10/03/2021 19:32 Ainda não é hora de apagar!

Aparece sempre o mesmo horário no console. E por algum motivo não funciona, sou iniciante em js. Se puderem me ajudar, ou até mesmo, se o código para fazer isso não tem nada a ver com esse que fiz, e tiver um outro método totalmente diferente, me ensine por favor.

Desculpe por qualquer coisa.

Por quê meu programa em C fica parado após chamar uma função?

Sou um novato em C e estou fazendo um código que recebe uma quantidade de dias, depois preenche um array com um valor para cada dia e então recebe um período de dias para analisar dentro do array. O programa deve retornar a soma do período em que o valor mais aumentou. Exemplo:

array = {1, 4, 9, 2}
período = 2;

Nesse caso o programa devería retornar 13 (4 + 9) pois foi o período de 2 dias onde o valor mais variou.

Até então todo o meu código funciona até eu ter que chamar a função que irá analisar os valores do array e retornar o resultado.

#include <stdio.h>
#include <stdlib.h>


/*
Conta os ganhos totais considerando a quantidade de dias dada
e retorna o valor de maior ganho encontrado
*/

int contaArray( int ganhos(), int i, int j, int dias_totais, int dias_check, int res){
    printf("Função inicializada");
    int cont;   //Variável que irá armazenar temporariamente o valor do ganho para uso dentro do loop for


    //Sequência de loops for que irá analisar dentro do array de ganhos qual o período com manho ganho acumulado
    for ( i = 0; i < dias_totais; i++){
        printf("Iteração");
        for ( j = i; j + dias_check - 1 < dias_totais; i++){

            cont += ganhos(j);
        }


        /*
        Condicional para verificar se o ganho acumulado do período verificado é maior do que o maior
        ganho acumulado registrado até o momento
        */
        if (cont > res){

        res = cont;

        }

    }

    printf("%dn",res);
    return res;

}


int main(){

    //Declaração de variáveis

    int dias_totais;    //Variável que irá conter a quantidade de dias totais
    int dias_check;     //Variável que irá conter a quantidade de dias a serem analisados
    int i;              //Variável contadora para os loop for
    int j;              //Variável contadora para os loop for
    int res;            //Variável que armazenará o resultado final



    //Pedindo a quantidade total de dias

    printf("Digite a quantidade de dias total: ");
    scanf("%d", &dias_totais);



    //Declaração do array que agora possui tamanho definido

    int *ganhos = malloc( sizeof(int) * dias_totais );


    //Loop For para preencher o array com os ganhos de cada dia

    for ( i = 0; i < dias_totais; i++)
    {
        printf("Ganho no dia %d: ", i+1);
        scanf("%d", &ganhos(i));
    }


    //Pedindo a quantidade de dias que será analisada

    printf("Digite a quantidade de dias a ser analisada: ");
    scanf("%d", &dias_check);

    contaArray(ganhos, i, 0, dias_totais, dias_check, 0);
    free(ganhos);
    return 0;
}

Toda a parte de solicitar a quantidade de dias e preencher o array funciona como esperado. Porém quando o programa chama a função contaArray() o terminal fica parado com o cursos piscando, como se ainda estivesse executando algo. Imaginei que algum dos loops for dentro da função estivesse dando loop infinito, por isso coloquei o printf("Iteração") dentro do primeiro loop for e o printf("Função inicializada"); no começo da função para saber que ela inicou pelo menos. Porém nenhum dos prints é executado no terminal, o que me indica que o programa nem está inicializando a função. Alguma ideia do que pode estar acontecendo de errado? Obrigado.

datasnap – API em Delphi alterando a linha de execução após receber nova requisição

Olá, estou tendo um problema em uma aplicação em Delphi 10.3.3 que é usada como API e não vejo saída.

A aplicação recebe requisições de um APP mobile, fazendo selects e inserções em tabelas.

Problema é que, quando estou recebendo uma outra requisição, a API para a execução e recomeça a execução para a nova chamada de função, ou seja, todo o processo que estava acontecendo não é terminado, consigo ver isso debugando, pois o cursor de debug literalmente volta para o inicio da função quando a nova requisição chega.

Estou utilizando um server DataSnap Delphi, e HttpURLConnection no Android Studio.

Minha dúvida especificamente aqui é por qual motivo isso acontece? E o que eu poderia fazer para resolver o problema?

Minha tentativa:
Utilizar threads, porém se eu utilizar thread na função chamada, sempre existe uma função chamada antes dela que vai retornar quando a nova requisição chegar, minha tentativa foi utilizando threads e critical section, porém o problema permaneceu.

Agradeço desde já.

escopo de variáveis – Perdendo valores inseridos na lista após sair do método (C#)

Boa noite!

Iniciei meu aprendizado em C# há menos de 3 semanas e estou com problemas ao tentar manipular listas.
É uma aplicação em console bem simples.

Tenho um menu onde o usuário seleciona entre as opções de incluir, editar e excluir registros de livros na lista, e também a opção de imprimir a lista e limpar toda a lista. Cada funcionalidade possui um método responsável.

O problema é que, quando os registros da classe ‘Livro’ são incluídos no método Insert() e, ao voltar para o menu e chamar o método para imprimir a lista, não existe nenhuma saída, como se a lista estivesse vazia.

Se eu chamo o método para imprimir a lista dentro do próprio método de incluir os registros, todos os valores que eu cadastrei na lista são exibidos normalmente. O que estou fazendo de errado?

                static  List <Book> Insert(){

                   List <Book>   bookList = new List<Book>();
                   Book books = new Book();

                   char reInsert;

                    do{

                    Console.Clear();

                    Console.WriteLine("Insira o titulo do livro: ");
                      
                      books.BookTitle=Console.ReadLine();

                    Console.WriteLine("Insira o nome do autor: ");
                      books.AuthorName=Console.ReadLine();
                    
                    Console.WriteLine("Insira a editora: ");
                        books.Publisher=Console.ReadLine(); 

                    Console.WriteLine("Insira o ano de lancamento: ");
                          books.ReleaseYear=Console.ReadLine();
               
                    Console.WriteLine("Insira o preco: ");
                          books.Price=decimal.Parse(Console.ReadLine());

                    Book book = new Book (books.BookTitle, books.AuthorName, books.Publisher, books.ReleaseYear, books.Price);

                    bookList.Add(book);

                    Console.WriteLine("Livro cadastrado com sucesso!");
                    Console.WriteLine("Deseja cadastrar outro livro? (S/N)");
                    reInsert=char.Parse(Console.ReadLine());
                    } while(reInsert=='s');

                    return bookList;
                                   
            }
  static void Print( List<Book> bookList){
             
             Console.Clear();

             var books = bookList.OrderBy(p => p.BookTitle);
          
                foreach(var b in books){

                    Console.WriteLine(@$"Titulo da Obra: {b.BookTitle}
                                         Autor: {b.AuthorName}
                                         Editora: {b.Publisher}
                                         Ano: {b.ReleaseYear}
                                         Valor: {b.Price}n");
                }
                        Console.ReadLine();
                                                
                }
           }

Chamando os métodos:

 static bool menu = true;
        static void Main(string() args)
        {  

            MainMenu();         
            
        }
         static void MainMenu(){
            
            do{
            Console.WriteLine("tt||eLib - v2.0||nn");

                Console.WriteLine("ttSelecione uma Opcao:n");

                Console.WriteLine(@"
                
                1 - Cadastrar Livro

                2 - Editar Cadastro de Livro 

                3 - Remover um Livro

                4 - Limpar Base de Dados

                5 - Imprimir Livros Cadastrados

                6 - Sair
                
                "); 

                int index=int.Parse(Console.ReadLine());
                Options selectedOption = (Options)index;

                List<Book> bookList = new List<Book>();

                
                switch(selectedOption){

                case(Options.Insert):

                bookList =  Insert();

                break;

                case(Options.Print):

                Print(bookList);

                  break;

Abraços.

Dois pontos após usar o git diff –cached

Sempre que uso o comando git diff –cached ele abre dois pontos e sempre que tento sair eu não consigoinserir a descrição da imagem aqui

javascript – Como faço para que um loop só continue após um if seja realizado!

Estou programando um bot para o discord que faz perguntas e confere se elas estão certas, porém a duvida que esstou tendo nn é com a lib discordjs em si mas sim com a própria linguagem!!
E o seguinte:
Ele faz a pergunta mas para fazer a proxima pergunta e preciso que esta primeira pergunta seja respondia primeiro! Para saber a resposta utilizo as reações que é uma funcionalidade do discord, e depois recebo o numero de votações na quela pergunta e liberar somente quando a variável for alterada Para monitorar essa variável eu preciso uso uma estrutura de setInterval e quando ele fica diferente de 1 ela executa o código! Porém o loop continua já que pego as perguntas de um array! Como façço para que esse loop que extrai as perguntas do array so continuar após essa variável for alterada??

aqui vai o terço crucial do código

 for (const i in PerguntasEmbaralhadas) {
          var pergunta = PerguntasEmbaralhadas(i)
          var exec = true
          var questao = await msg.channel.send({ embed: pergunta });

          const Alternativas = { 1: '🔵', 2: '🟤', 3: '🟣', 4: '🟡' }
          for (const a in Alternativas) {
            await questao.react(Alternativas(a))
          }
        }

        const revisor = await setInterval(async () => {
          var countAnwser = await questao.reactions.cache.map(reaction => reaction.count)
          for (const i in countAnwser) {
            if (countAnwser(i) != 1) {
              await msg.reply(`Sua resposta foi a alternativa ${i + 1}`)
              clearInterval(revisor)
              semaforo = true
            } else {
              bsemaforo = false
            }
          }
        }, 1000)
      }

desde já agradeço muito