1
00:00:03,830 --> 00:00:09,840
بعد مقدمة قصيرة للوعود في المحاضرة السابقة،

2
00:00:09,840 --> 00:00:12,270
دعونا ننتقل إلى التمرين التالي حيث

3
00:00:12,270 --> 00:00:15,235
سنستخدم الوعود ضمن تطبيقنا الزاوي. على

4
00:00:15,235 --> 00:00:24,060
وجه الخصوص، تعد الوعود طريقة أساسية للتعامل مع التأخيرات خاصة

5
00:00:24,060 --> 00:00:27,885
عندما تحتاج إلى الوصول إلى البيانات والحصول عليها من خادم

6
00:00:27,885 --> 00:00:32,915
قبل تسليمها إلى المكون من خلال خدمتك.

7
00:00:32,915 --> 00:00:36,440
لذا، غالباً ما تعيد الخدمات الوعود إلى

8
00:00:36,440 --> 00:00:41,050
المكونات عندما تستدعي المكونات أساليب الخدمة،

9
00:00:41,050 --> 00:00:43,490
وبعد ذلك عندما

10
00:00:43,490 --> 00:00:47,385
يحل الوعد، فإن المكونات ستكون لها النتائج المتاحة لها.

11
00:00:47,385 --> 00:00:51,920
سنقوم بإعادة تكوين الخدمات التي لدينا داخل

12
00:00:51,920 --> 00:00:55,970
تطبيقنا الزاوي للعودة

13
00:00:55,970 --> 00:00:58,550
الوعود وبعد ذلك سنقوم بإعادة تكوين

14
00:00:58,550 --> 00:01:02,390
مكوناتنا لتكون قادرة على التعامل مع الوعود.

15
00:01:02,390 --> 00:01:10,925
الخطوة الأولى في هذا التمرين هي إعادة تكوين جميع الخدمات للعودة الوعود.

16
00:01:10,925 --> 00:01:14,704
لذلك كل من الطرق داخل خدمتنا بدلا من إرجاع

17
00:01:14,704 --> 00:01:18,500
القيمة على الفور سوف يعود الوعود.

18
00:01:18,500 --> 00:01:21,685
لذا، كيف يمكننا تكوين خدماتنا للعودة الوعود؟

19
00:01:21,685 --> 00:01:26,635
لذلك، والذهاب إلى ملف dishservice.ts،

20
00:01:26,635 --> 00:01:35,390
فإن طريقة getDuses هنا ستعود وعد بدلا من صفيف الطبق.

21
00:01:35,390 --> 00:01:38,840
لذلك، نقوم بتكوين طريقة getDuses للعودة

22
00:01:38,840 --> 00:01:43,695
الوعد عن طريق إرفاق كائن الطبق هذا داخل الوعد.

23
00:01:43,695 --> 00:01:49,235
ما يعنيه هذا هو أنه إذا حل الوعد، فإن النتيجة

24
00:01:49,235 --> 00:01:55,435
التي يتم تسليمها بواسطة وعد GetDubishes ستكون مجموعة أطباق.

25
00:01:55,435 --> 00:01:59,164
لذلك، داخل المكون الخاص بك

26
00:01:59,164 --> 00:02:03,290
سوف تتلقى مجموعة طبق إذا كان الوعد النتائج بشكل صحيح.

27
00:02:03,290 --> 00:02:07,845
الآن بعد أن قمنا بتكوين GetDuses لإرجاع وعد،

28
00:02:07,845 --> 00:02:10,370
نحتاج إلى إعادة تكوين الشفرة

29
00:02:10,370 --> 00:02:14,735
بحيث يتم إرجاع مجموعة الأطباق هذه كجزء من الوعد.

30
00:02:14,735 --> 00:02:18,770
الآن بما أن لدينا النتيجة متاحة بالفعل لنا،

31
00:02:18,770 --> 00:02:22,190
سأستخدم طريقة الاختصار

32
00:02:22,190 --> 00:02:27,875
لإعادة الوعد من خلال حل الوعد على الفور.

33
00:02:27,875 --> 00:02:34,720
الآن من الواضح أن هذا يعمل بشكل جيد إذا كان لديك النتائج المتاحة على الفور معك.

34
00:02:34,720 --> 00:02:38,120
ولكن، عند إعادة تكوين الخدمة الخاصة بك

35
00:02:38,120 --> 00:02:41,885
لتكون قادرة على الذهاب وجلب هذه البيانات من خادم،

36
00:02:41,885 --> 00:02:46,670
ثم سيكون لدينا لإعادة كتابة هذا الرمز للتعامل مع حقيقة أن

37
00:02:46,670 --> 00:02:49,310
الخدمة لن ترجع النتيجة

38
00:02:49,310 --> 00:02:52,875
على الفور بدلا من ذلك سيكون لديك إلى الانتظار لبعض الوقت.

39
00:02:52,875 --> 00:02:54,430
في التمرين التالي،

40
00:02:54,430 --> 00:03:03,290
سنقوم بمحاكاة التأخير باستخدام طريقة جافا سكريبت بحيث يمنحك

41
00:03:03,290 --> 00:03:12,875
شعورًا بما يعنيه التعامل مع التأخير في تلقي نتيجة من وعد.

42
00:03:12,875 --> 00:03:16,865
الآن بعد أن قمنا بتكوين getDuses لإرجاع الوعد،

43
00:03:16,865 --> 00:03:20,770
وبالمثل، سنقوم بإعادة تكوين الطريقتين المتبقيتين.

44
00:03:20,770 --> 00:03:24,890
لذلك أنا ذاهب لنسخ هذا الوعد من

45
00:03:24,890 --> 00:03:30,430
هنا ومن ثم ببساطة إرفاق هذا إلى اثنين المتبقية هناك،

46
00:03:30,430 --> 00:03:34,220
حتى يتسنى لي تحويلها أيضا للعودة

47
00:03:34,220 --> 00:03:37,100
الوعود وبعد ذلك بالطبع كل ما

48
00:03:37,100 --> 00:03:40,225
لدينا هنا يجب أن تكون مغلقة داخل عزم الوعد.

49
00:03:40,225 --> 00:03:43,129
لذلك أنا ذاهب فقط لنسخ عزم الوعد

50
00:03:43,129 --> 00:03:50,675
وأرفق هذا داخل العزم هنا.

51
00:03:50,675 --> 00:04:00,080
وبالمثل، بالنسبة للطبق المميز، سأرفق هذا داخل عزم الوعد.

52
00:04:00,080 --> 00:04:05,005
الآن، يتم تكوين خدمة الطبق الخاص بي للعودة الوعود.

53
00:04:05,005 --> 00:04:07,610
من الواضح أن هذا يعني أيضًا أنني بحاجة إلى الانتقال إلى

54
00:04:07,610 --> 00:04:11,360
مكوناتي ثم إعادة تكوين المكونات لتكون قادرة

55
00:04:11,360 --> 00:04:14,090
على التعامل مع حقيقة أنها لا تتلقى البيانات

56
00:04:14,090 --> 00:04:17,720
على الفور بدلاً من ذلك فإنها تتلقى وعدًا

57
00:04:17,720 --> 00:04:21,200
ثم سيتعين عليها تنفيذ الطريقة

58
00:04:21,200 --> 00:04:25,550
التي الوعد عندما النتائج سوف يسلم البيانات لك.

59
00:04:25,550 --> 00:04:28,639
لذلك، الآن بعد أن قمنا بتكوين خدمة الطبق،

60
00:04:28,639 --> 00:04:35,020
ونحن نعرف مكان واحد حيث يتم استخدام الخدمة بنشاط وهذا هو مكون القائمة.

61
00:04:35,020 --> 00:04:37,730
لذلك اسمحوا لي أن تظهر لكم كيف سنقوم بإعادة تكوين

62
00:04:37,730 --> 00:04:40,640
المكون لتكون قادرة على التعامل مع الوعد.

63
00:04:40,640 --> 00:04:44,420
لذلك عندما تذهب إلى menucomponent.ts

64
00:04:44,420 --> 00:04:49,984
ستلاحظ على الفور أن هناك خط أحمر متعرج تحت الأطباق لأنه،

65
00:04:49,984 --> 00:04:51,880
كما ترون، الآن،

66
00:04:51,880 --> 00:04:58,875
dishService.GetDuses يعود وعد ثم هنا لديك،

67
00:04:58,875 --> 00:05:05,660
والوعد الذي يتم تعيينه إلى كائن صفيف طبق وهذا ليس صحيحا.

68
00:05:05,660 --> 00:05:08,005
كيف يمكننا إعادة تكوين هذا الرمز؟

69
00:05:08,005 --> 00:05:09,559
لذلك، كما ذكرت،

70
00:05:09,559 --> 00:05:11,440
عندما نقوم بإعادة تكوين التعليمات البرمجية،

71
00:05:11,440 --> 00:05:16,100
نحن بحاجة إلى تنفيذ ثم والصيد ل getDusies.

72
00:05:16,100 --> 00:05:20,820
لذلك، اسمحوا لي أن المضي قدما وتنفيذ فقط ثم في هذه اللحظة،

73
00:05:20,820 --> 00:05:27,360
لطريقة getDuses لأنه يمكن تنفيذ الصيد في وقت لاحق.

74
00:05:27,360 --> 00:05:31,190
الآن نحن نعلم أن الوعد سوف تحل دائما بشكل صحيح،

75
00:05:31,190 --> 00:05:33,665
لذلك سنقوم بتنفيذ الطريقة ثم هنا

76
00:05:33,665 --> 00:05:36,645
، وبعد ذلك، داخل الطريقة ثم،

77
00:05:36,645 --> 00:05:46,650
وسوف تتلقى كائن الأطباق القادمة عندما يحل الوعد.

78
00:05:46,650 --> 00:05:50,400
وعندما يكون هذا هو كائن الأطباق يأتي كمعلمة،

79
00:05:50,400 --> 00:05:53,190
لذلك ترى أنني أكتب وظيفة السهم هنا،

80
00:05:53,190 --> 00:06:03,120
أنا فقط ذاهب لقطع ذلك وتضمين ذلك الحق هناك.

81
00:06:03,170 --> 00:06:09,510
ها أنت ذا هذه هي الطريقة التي يمكن أن

82
00:06:09,510 --> 00:06:16,775
يأخذ بها المكون الخاص بك الآن الوعد ثم استرداد النتائج عندما يتم حل الوعد.

83
00:06:16,775 --> 00:06:21,575
يمكنك أن ترى أن لدينا DishService getDubishs ثم

84
00:06:21,575 --> 00:06:26,560
تتغير الطريقة إليه وحيث عندما يتم استدعاء ثم،

85
00:06:26,560 --> 00:06:28,880
عندما يحل الوعد من الجانب الآخر،

86
00:06:28,880 --> 00:06:33,635
ثم سيتم تسليم الأطباق لك

87
00:06:33,635 --> 00:06:38,450
لأن طريقة getDubishes تعود وعد ولكن النتيجة ستكون مجموعة أطباق.

88
00:06:38,450 --> 00:06:42,320
هذا صفيف الطبق يأتي كمعلمة هنا لذلك أنا أكتب وظيفة السهم

89
00:06:42,320 --> 00:06:46,880
هنا حيث أنا تعيين أن هذه الأطباق للأطباق.

90
00:06:46,880 --> 00:06:49,880
لذلك، عندما يحل هذا الوعد ثم

91
00:06:49,880 --> 00:06:53,930
سيتم تعيين الأطباق لهذه الأطباق. هذا كل شيء.

92
00:06:53,930 --> 00:06:57,455
الآن مكون القائمة الخاص بي جاهز للتعامل مع الوعد.

93
00:06:57,455 --> 00:07:01,715
بالطبع، للتعامل مع الخطأ تحتاج أيضا إلى

94
00:07:01,715 --> 00:07:06,130
سلسلة طريقة الصيد في طريقة getDuses.

95
00:07:06,130 --> 00:07:08,390
لذا، فإن ثم والصيد هما الطرق

96
00:07:08,390 --> 00:07:11,540
التي يوفرها الوعد لك وهكذا تقوم بتنفيذ ذلك

97
00:07:11,540 --> 00:07:16,790
والتي ستوفر فيها الوظيفة التي تتعامل مع

98
00:07:16,790 --> 00:07:23,355
الوضع عندما يحل الوعد أو عندما يرفض الوعد بوجود خطأ.

99
00:07:23,355 --> 00:07:28,850
الآن وبالمثل، يجب علينا إعادة تكوين طريقة تفاصيل الطبق

100
00:07:28,850 --> 00:07:33,890
وأيضا المكون الرئيسي للتعامل مع حقيقة أن

101
00:07:33,890 --> 00:07:44,520
ديشسرفيس هو الآن تقديم وعود بدلا من تقديم القيم على الفور.

102
00:07:44,520 --> 00:07:46,470
بينما نحن في ذلك،

103
00:07:46,470 --> 00:07:51,305
ونحن قد كذلك إعادة تشكيل كل من الزعيم وخدمة الترويج أيضا.

104
00:07:51,305 --> 00:07:55,100
لذلك سأترك الأمر كممارسة لك لإكمال،

105
00:07:55,120 --> 00:07:59,930
وتحديث كل من خدمة القائد وخدمة الترويج لتكون قادرة على

106
00:07:59,930 --> 00:08:05,180
تقديم الوعود المقابلة.

107
00:08:05,180 --> 00:08:09,379
أيضا، وبالتالي، سيكون لديك لإعادة تكوين

108
00:08:09,379 --> 00:08:18,785
رمز البرنامج النصي نوع المكون في المكون حول في مكون تفاصيل الطبق،

109
00:08:18,785 --> 00:08:23,360
في المكون الرئيسي للتعامل مع حقيقة أنك

110
00:08:23,360 --> 00:08:27,950
تتلقى الآن وعود بدلا من النتائج الفعلية.

111
00:08:27,950 --> 00:08:34,005
لذلك سوف تسمح لك إكمال هذا الجزء بدلا من توضيح كل ذلك بالتفصيل،

112
00:08:34,005 --> 00:08:37,620
لقد أظهرت لك خطوة واحدة مع مكون تفاصيل الطبق.

113
00:08:37,620 --> 00:08:42,380
الرجاء إكمال الخطوات مع كل من القائد وخدمة الترويج،

114
00:08:42,380 --> 00:08:45,890
ثم قم بتكوين المكونات المقابلة وفقًا لذلك.

115
00:08:45,890 --> 00:08:50,275
اسمحوا لي أن المشي بسرعة لكم من خلال التحديثات التي تحتاج إلى إكمال.

116
00:08:50,275 --> 00:08:56,365
حتى كما ترون خدمة القادة لقد قمت بتحديث بالفعل مع الوعد.

117
00:08:56,365 --> 00:08:57,585
كما ترون هنا،

118
00:08:57,585 --> 00:09:00,410
تم تحديث جميع الطرق الآن للعودة

119
00:09:00,410 --> 00:09:04,800
الوعود تماما مثل الطريقة التي فعلناها مع ديشسرفيس.

120
00:09:04,800 --> 00:09:08,420
وبالمثل، فإن خدمات الترويج تحديث أيضا

121
00:09:08,420 --> 00:09:12,660
للعودة الوعود من جميع الأساليب هناك.

122
00:09:12,660 --> 00:09:16,560
الآن، بالانتقال إلى المكون،

123
00:09:16,560 --> 00:09:22,160
سترى أنه في المكون حول أيضًا قمنا بتكوين

124
00:09:22,160 --> 00:09:28,790
لتلقي القيم داخل الوعد هناك.

125
00:09:28,790 --> 00:09:33,560
وبالمثل، في مكون تفاصيل الطبق ستلاحظ أنني قمت

126
00:09:33,560 --> 00:09:39,765
بإعادة تكوين هذا للتعامل مع الوعد هناك.

127
00:09:39,765 --> 00:09:43,495
وبالمثل، في المكون الرئيسي،

128
00:09:43,495 --> 00:09:51,740
ستلاحظ أنه داخل المكون الرئيسي

129
00:09:51,740 --> 00:09:54,650
تم تحديث جميع الطرق الثلاث هنا: GetFeatureDish، FeatureDPromession، و FeatureDLeader،

130
00:09:54,650 --> 00:09:59,330
مع ثم تعلق على كل واحد منهم للتعامل مع الوعد.

131
00:09:59,330 --> 00:10:06,355
الرمز مشابه إلى حد كبير لما قمت بتوضيحه مع مكون القائمة.

132
00:10:06,355 --> 00:10:08,570
بمجرد إكمال هذا،

133
00:10:08,570 --> 00:10:12,995
دعونا نلقي نظرة سريعة على طلبنا.

134
00:10:12,995 --> 00:10:15,665
الذهاب إلى التطبيق لدينا في المتصفح،

135
00:10:15,665 --> 00:10:18,870
فإنك لن ترى أي فرق في التطبيق.

136
00:10:18,870 --> 00:10:21,409
وهو يعمل بالضبط بنفس الطريقة كما كان من قبل،

137
00:10:21,409 --> 00:10:26,385
إلا أنه الآن يستخدم الوعود عندما

138
00:10:26,385 --> 00:10:29,615
يتم تنفيذ الخدمات ومكوناتك

139
00:10:29,615 --> 00:10:33,080
تتعامل مع الوعود عندما يتم حلها.

140
00:10:33,080 --> 00:10:36,530
وبالتالي فإن عنصر القائمة تعمل بشكل صحيح

141
00:10:36,530 --> 00:10:40,440
وأيضا عنصر التفاصيل طبق تعمل أيضا بشكل صحيح.

142
00:10:40,440 --> 00:10:43,150
مع هذا، نكمل هذا التمرين.

143
00:10:43,150 --> 00:10:49,130
في هذا التمرين، رأينا كيف تمكنا من ترقية خدماتنا

144
00:10:49,130 --> 00:10:55,990
لتقديم الوعود، كما قمنا بتحديث مكوناتنا لتكون قادرة على التعامل مع الوعود.

145
00:10:55,990 --> 00:10:58,710
و هذا يكمل هذا التمرين.

146
00:10:58,710 --> 00:11:06,300
هذا هو الوقت المناسب بالنسبة لك للقيام جيت الالتزام مع الرسالة «الوعد جزء واحد».