Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:02,310 --> 00:00:05,270
Já alcançamos muito nesta seção.
2
00:00:05,520 --> 00:00:12,760
E notei que todo esse código parece meio intimidador e não se preocupe, isso se tornará muito mais fácil, mas
3
00:00:12,810 --> 00:00:18,840
acho super importante aprendê-lo da maneira mais difícil primeiro, para que você nunca esqueça o que
4
00:00:18,840 --> 00:00:20,650
está acontecendo nos bastidores.
5
00:00:20,790 --> 00:00:27,930
Agora, uma coisa crucial com a qual observo que as pessoas frequentemente enfrentam dificuldades é que a ordem de execução do
6
00:00:27,930 --> 00:00:32,430
seu código aqui não é necessariamente a ordem na qual você o escreve.
7
00:00:32,460 --> 00:00:41,490
Por exemplo, este ano será realmente executado após esse código e será executado depois que já tivermos
8
00:00:41,490 --> 00:00:43,260
enviado a resposta.
9
00:00:43,260 --> 00:00:50,190
Isso tem duas implicações importantes para quem enviar a resposta não significa que nossos ouvintes de eventos estejam aqui com
10
00:00:50,190 --> 00:00:51,190
nossa dívida.
11
00:00:51,360 --> 00:00:55,010
Eles ainda serão executados mesmo se a resposta já tiver desaparecido.
12
00:00:55,200 --> 00:01:00,920
Mas também significa que, se fizermos algo no ouvinte de eventos que deve influenciar a resposta, é uma
13
00:01:00,940 --> 00:01:02,620
maneira errada de configurá-la.
14
00:01:02,640 --> 00:01:06,200
Também devemos mover o código de resposta para o ouvinte de eventos.
15
00:01:06,210 --> 00:01:08,020
Se tivéssemos essa dependência.
16
00:01:08,550 --> 00:01:16,750
Mas isso também significa que é super importante entender que solicitamos ou codificamos como o servidor de criação
17
00:01:16,750 --> 00:01:17,420
HTP.
18
00:01:17,610 --> 00:01:26,070
Estes são alguns exemplos em que nenhuma perseguição usa um padrão no qual você passa uma função para uma função e
19
00:01:26,070 --> 00:01:33,140
o nó executará as funções passadas pelo DS em um momento posterior chamado de forma assíncrona.
20
00:01:33,240 --> 00:01:38,910
Agora, nem sempre é o caso de uma função transmitida ser
21
00:01:39,120 --> 00:01:45,570
necessariamente executada posteriormente, mas nenhum J usou esse padrão intensamente e, claro, permite saber
22
00:01:45,570 --> 00:01:51,990
quando isso ocorre e quando o nó executa algo de forma assíncrona. casos.
23
00:01:52,330 --> 00:01:56,340
Nenhuma chance não executará imediatamente essa função.
24
00:01:56,500 --> 00:02:03,230
Em vez disso, o que ele faz quando encontra essa linha pela primeira vez é que ele simplesmente adicionará um
25
00:02:03,280 --> 00:02:06,670
novo ouvinte sem eventos internamente, gerencia todos esses ouvintes internamente.
26
00:02:06,940 --> 00:02:12,920
Nesse caso, para o evento final da solicitação, que será acionado automaticamente assim que nenhuma alteração for
27
00:02:12,940 --> 00:02:13,330
feita.
28
00:02:13,330 --> 00:02:17,270
A análise da solicitação também faz algo que nenhuma perseguição faz por você.
29
00:02:18,030 --> 00:02:20,990
E então chamará essa função para você.
30
00:02:21,030 --> 00:02:28,410
Uma vez feito isso, no final, você pode pensar nisso como se não houvesse um registro interno de eventos
31
00:02:28,650 --> 00:02:34,620
e ouvintes para esses eventos e uma função como essa é um ouvinte e, quando
32
00:02:34,620 --> 00:02:41,680
servido, algo acontece, então, quando não há chance de analisar sua solicitação vai passar pelo registro e ver.
33
00:02:41,790 --> 00:02:45,430
Concluí a solicitação e agora devo enviar os eventos finais.
34
00:02:45,440 --> 00:02:52,560
Vamos ver quais ouvintes eu tenho para isso e, então, encontraremos essa função e quaisquer outras funções que você
35
00:02:52,560 --> 00:02:59,910
possa ter registrado para isso e agora as chamarão, mas ela não postará a execução média do código e isso
36
00:02:59,910 --> 00:03:02,120
é tão importante para entender.
37
00:03:02,430 --> 00:03:10,010
Então, por exemplo, aqui agora, desde que mudei a resposta de retorno e, para essa função, o fluxo é assim.
38
00:03:10,080 --> 00:03:15,070
Agora será atingido como se fosse uma declaração e, se essas condições forem atendidas, ele entrará dentro dela.
39
00:03:15,890 --> 00:03:21,430
Ele registrará o DS nos manipuladores e não executará imediatamente essas duas funções.
40
00:03:21,470 --> 00:03:27,950
Em vez disso, as funções são apenas registradas internamente no registro do emissor de eventos e, em
41
00:03:27,960 --> 00:03:35,330
seguida, elas passam para a próxima linha e, portanto, agora, se eu reiniciar o servidor e salvar no código e
42
00:03:35,330 --> 00:03:37,220
reiniciar o servidor aqui.
43
00:03:38,750 --> 00:03:44,790
Você verá que, se eu inserir algo aqui, na verdade, sou redirecionado para esta página ou nem mesmo o redireciono, como você
44
00:03:44,790 --> 00:03:45,640
pode ver.
45
00:03:45,740 --> 00:03:53,570
Não existe um código de status 300 em vez de apenas esta página do Lote, porque ele executa essas linhas porque, como
46
00:03:53,600 --> 00:03:57,240
agora mencionei várias vezes, ele não será executado imediatamente.
47
00:03:57,380 --> 00:04:02,540
E essa declaração de retorno, portanto, não encerrará essa função abrangente aqui.
48
00:04:02,930 --> 00:04:08,060
Em vez disso, apenas registra esse retorno de chamada e passa imediatamente para as próximas linhas.
49
00:04:08,210 --> 00:04:12,260
E acabaria por executar essa linha, mas isso já é tarde demais.
50
00:04:12,350 --> 00:04:17,990
É também por isso que obtemos o erro do hetero não pode definir aqui, porque ele já moveu o longo e
51
00:04:18,020 --> 00:04:18,860
executou esse código.
52
00:04:18,860 --> 00:04:24,800
De repente, a análise da solicitação terminou e ele executou esse código e tentou enviar novamente
53
00:04:24,800 --> 00:04:29,570
uma resposta que obviamente é tarde demais, porque já havia feito aqui.
54
00:04:29,570 --> 00:04:37,850
Agora eu sei que isso é difícil de entender, mas é um conceito crucial que você possa registrar funções
55
00:04:37,850 --> 00:04:44,500
de código que serão executadas em algum momento no futuro, mas não necessariamente no momento.
56
00:04:44,660 --> 00:04:52,500
E, portanto, a próxima linha de código que esse código aqui pode executar ou será executada antes desse código, simplesmente porque é apenas
57
00:04:52,500 --> 00:04:56,900
um retorno de chamada a ser chamado em algum momento no futuro.
58
00:04:57,100 --> 00:05:04,070
E essa configuração é importante porque, caso contrário, o nó terá que pausar até que seja concluído, pausar até que
59
00:05:04,070 --> 00:05:11,180
ele tenha gravado o arquivo e, se o fizer, simplesmente reduzirá a velocidade do servidor e não poderá lidar com
60
00:05:11,270 --> 00:05:15,970
nossas solicitações recebidas ou fazer qualquer coisa desse tipo até está feito.
61
00:05:16,010 --> 00:05:17,930
E não é isso que queremos.
62
00:05:17,930 --> 00:05:21,080
Não queremos bloquear nossa execução de código.
63
00:05:21,080 --> 00:05:27,350
Nós sempre queremos estar nessa espera por novos eventos, repetir o loop de eventos e, em seguida, executar o código apenas
64
00:05:27,350 --> 00:05:32,500
uma vez que deve ser executado e nunca bloquear esse loop de eventos por muito tempo.
65
00:05:32,600 --> 00:05:40,020
E é por isso que temos essa configuração e isso tem uma implicação para esta linha e para essa linha de aplicativo
66
00:05:40,040 --> 00:05:42,710
para design é que chegamos cedo demais.
67
00:05:42,800 --> 00:05:46,580
Então, para um branco, deveríamos voltar aqui.
68
00:05:47,390 --> 00:05:50,870
Simplesmente retornamos a solicitação para que isso seja executado.
69
00:05:50,930 --> 00:05:52,840
Mas a linha depois disso não.
70
00:05:53,210 --> 00:05:57,770
E a aplicação importante sobre essa linha será discutida na próxima palestra.
8368
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.