1
00:00:03,980 --> 00:00:08,700
لقد تعلمنا للتو عن الجحيم الاتصال

2
00:00:08,700 --> 00:00:13,455
وكيف يمكن أن تمكننا الوعود من التغلب على هذه المسألة.

3
00:00:13,455 --> 00:00:19,575
ونحن نعلم أن برنامج تشغيل العقدة MongoDB يدعم أصلا الوعود.

4
00:00:19,575 --> 00:00:22,485
لذلك، إذا لم تقم بتحديد رد اتصال،

5
00:00:22,485 --> 00:00:26,385
فستعود المكالمات إلى وظائفها الوعود.

6
00:00:26,385 --> 00:00:31,445
لذلك، سنقوم بتحديث طلبنا للاستفادة من الوعود

7
00:00:31,445 --> 00:00:38,005
لتجنب قضية الجحيم رد التي تعلمناها للتو في المحاضرة السابقة.

8
00:00:38,005 --> 00:00:40,644
بالعودة إلى تطبيقنا،

9
00:00:40,644 --> 00:00:48,035
مرة أخرى أخذ نظرة أخرى على سبب تطور الجحيم رد في شفرتنا.

10
00:00:48,035 --> 00:00:52,520
لاحظ أنه هنا عندما نفذنا العمليات،

11
00:00:52,520 --> 00:00:56,899
لدينا عملية واحدة ثم داخل رد الاتصال من هذه العملية،

12
00:00:56,899 --> 00:01:00,770
ثم نحن بحاجة إلى بدء العملية التالية وداخل

13
00:01:00,770 --> 00:01:04,910
رد الاتصال من هذه العملية نحن نبدأ العملية التالية وهلم جرا.

14
00:01:04,910 --> 00:01:10,040
لذلك ينتهي بك المطاف مع هذا الهرم مثل الهيكل هنا.

15
00:01:10,040 --> 00:01:14,290
عملية واحدة داخل رد اتصال آخر وداخل رد الاتصال.

16
00:01:14,290 --> 00:01:21,240
الآن، هذا الرمز قريبا جدا الحصول على غير عملي ومعقد لفهم.

17
00:01:21,240 --> 00:01:24,760
لهذا السبب نريد تحويل هذا الرمز باستخدام

18
00:01:24,760 --> 00:01:29,380
دعم الوعد الذي يوفره Mongo DB Driver بالفعل

19
00:01:29,380 --> 00:01:33,205
لنا حتى نتمكن بدلاً من استخدام الوعود

20
00:01:33,205 --> 00:01:37,735
بدلاً من استخدام وظائف رد الاتصال كما فعلنا في هذا التمرين.

21
00:01:37,735 --> 00:01:42,760
بالطبع، فعلت الإصدار السابق فقط لتوضيح لك كيف يمكننا

22
00:01:42,760 --> 00:01:48,595
الهبوط مع الجحيم رد وكيف يمكننا استخدام الوعود للتغلب على هذه المسألة.

23
00:01:48,595 --> 00:01:53,560
لذلك، قبل أن نقوم بتحديث ملف index.js،

24
00:01:53,560 --> 00:01:59,989
اسمحوا لي أن أذهب إلى العمليات.jsfile وبعد ذلك سنقوم بتحديث هذا أولا.

25
00:01:59,989 --> 00:02:06,950
حتى هنا، ستلاحظ أنه عندما ندعو هذه الوظيفة هنا،

26
00:02:06,950 --> 00:02:14,630
ونحن نمر في المعلمة الثانية التي هي وظيفة رد الاتصال هنا.

27
00:02:14,630 --> 00:02:18,210
لذا، لأننا سنستخدم الوعود هنا

28
00:02:18,210 --> 00:02:21,545
لذلك أنا فقط ذاهب لحذف وظيفة رد الاتصال هذه وبعد ذلك

29
00:02:21,545 --> 00:02:25,744
لأن هذه المكالمة إلى إدراج سيعود على أي حال الوعود،

30
00:02:25,744 --> 00:02:29,710
أنا فقط ذاهب للعودة الوعد من هذه الوظيفة.

31
00:02:29,710 --> 00:02:33,605
لذا لاحظ كيف تم تبسيط الشفرة.

32
00:02:33,605 --> 00:02:36,090
وبالمثل بالنسبة للثانية،

33
00:02:36,090 --> 00:02:42,740
سأقوم ببساطة بإزالة وظيفة رد الاتصال هذه

34
00:02:42,740 --> 00:02:47,900
ثم إرجاع الوعد الذي

35
00:02:47,900 --> 00:02:55,580
يتم إرجاعه بواسطة هذا ومن ثم سنتعامل مع ذلك في التعليمات البرمجية في index.js.

36
00:02:55,580 --> 00:02:58,495
وبالمثل بالنسبة لحذف واحد أيضا،

37
00:02:58,495 --> 00:03:08,280
وأنا ذاهب لإزالة رد الاتصال ثم العودة هذا الحادث وأيضا لuptade.

38
00:03:10,600 --> 00:03:16,730
للتحديث، سنقوم بإزالة رد الاتصال الذي قدمناه

39
00:03:16,730 --> 00:03:22,564
هنا ثم إرجاع الوعد.

40
00:03:22,564 --> 00:03:25,100
وبهذه الطريقة،

41
00:03:25,100 --> 00:03:27,575
ستعود جميع هذه الوظائف الأربع الوعد الذي تم إرجاعه بالفعل

42
00:03:27,575 --> 00:03:33,110
بواسطة هذه المكالمات إلى وظائف برنامج تشغيل MongoDB.

43
00:03:33,110 --> 00:03:34,760
الآن بمجرد الانتهاء من ذلك،

44
00:03:34,760 --> 00:03:38,210
دعونا نعود إلى index.js.

45
00:03:38,210 --> 00:03:44,090
في index.js، سأقوم بتحديث هذه الوظيفة مرة أخرى هنا.

46
00:03:44,090 --> 00:03:53,105
لذا فإن استخدام الوعود سيقول MongoClient.Connect (url) وبعد ذلك

47
00:03:53,105 --> 00:04:03,470
سنقوم باستبدال هذا بالقول «ثم» وهذا يتلقى فقط db كمعلمة لها.

48
00:04:03,470 --> 00:04:10,390
وداخل هنا، سنتعامل مع بقية وأيضا

49
00:04:10,390 --> 00:04:18,350
يمكننا أن نلاحظ أن هذه الوظيفة معينة تغلق «ثم» هنا والوعد،

50
00:04:18,350 --> 00:04:20,505
والجزء الثاني إلى الوعد،

51
00:04:20,505 --> 00:04:22,845
يمكننا التعامل مع الخطأ.

52
00:04:22,845 --> 00:04:28,055
يمكننا أن نقول consolelog.

53
00:04:28,055 --> 00:04:33,755
حتى نتمكن من استخدام الصيد من الوعد أيضا للقبض على الأخطاء.

54
00:04:33,755 --> 00:04:36,275
وبهذه الطريقة، لقد اشتعلنا الأخطاء.

55
00:04:36,275 --> 00:04:39,815
الآن، دعونا تحسين التعليمات البرمجية داخل هنا.

56
00:04:39,815 --> 00:04:45,530
حتى داخل هنا نقوم بإجراء عملية دب إدراج وثيقة،

57
00:04:45,530 --> 00:04:49,685
وبدلا من استدعاء هذه الوظيفة هنا،

58
00:04:49,685 --> 00:04:59,115
ما سأقوم به هو تحويل هذا إلى «ثم» هنا.

59
00:04:59,115 --> 00:05:06,870
لذلك أنا ذاهب لإغلاق هذا ويقول. ثم النتيجة.

60
00:05:06,870 --> 00:05:08,800
حتى داخل تلك النتيجة،

61
00:05:08,800 --> 00:05:11,600
ونحن في طريقنا لطباعة سجل وحدة التحكم وبعد ذلك.

62
00:05:11,600 --> 00:05:20,630
لذلك أنا ذاهب لإغلاق هذا قبالة هنا وبعد ذلك سنقوم

63
00:05:20,630 --> 00:05:25,505
بإغلاق «ثم» هنا وبعد ذلك

64
00:05:25,505 --> 00:05:31,950
سيتم إرفاق هذا مرة أخرى «ثم» هنا.

65
00:05:32,600 --> 00:05:36,640
لذلك ترى أنني أقوم بتسلسل اثنين من «thens»

66
00:05:36,640 --> 00:05:40,070
واحد إلى الآخر هنا ثم داخلنا ثم،

67
00:05:40,070 --> 00:05:47,570
سنقوم بعمل سجل وحدة التحكم ثم سنقوم بعودة العملية التالية.

68
00:05:47,570 --> 00:05:51,390
ولكن بعد ذلك، لهذه العملية،

69
00:05:52,540 --> 00:06:02,070
سأقوم بإغلاق هذا وإغلاق هذا

70
00:06:02,070 --> 00:06:06,920
ثم ثم

71
00:06:06,920 --> 00:06:13,320
سيتم التعامل مع هذه المكالمة مرة أخرى الآن داخل وظيفة «ثم» هنا.

72
00:06:13,460 --> 00:06:20,510
لذا لاحظ كيف لديك الوظيفة الأولى وفي «ثم» نحن ندعو

73
00:06:20,510 --> 00:06:27,870
dboper العثور على الوثائق والتي ستعود وهذا سيعود وعد.

74
00:06:27,870 --> 00:06:30,410
هذا الوعد سيتم التعامل معه من قبل هذا

75
00:06:30,410 --> 00:06:35,720
لذلك نحن تسلسل اثنين من ثينس معا ثم مرة أخرى تسلسل واحد أكثر «ثم» هنا.

76
00:06:35,720 --> 00:06:47,005
اسمحوا لي أن إعادة اختراع رمز هنا وبعد ذلك سوف نعود هذا هنا وهذا

77
00:06:47,005 --> 00:06:57,610
مرة أخرى سوف تغلق وإغلاق أن «ثم»

78
00:06:57,610 --> 00:07:07,850
ثم يتم وضع هذا داخل المقبل «ثم»

79
00:07:07,850 --> 00:07:13,280
وسوف ندعو الوظيفة التالية هنا «أن

80
00:07:13,280 --> 00:07:21,130
Db.DropCollection ('أطباق' وإغلاق «هذا ثم» والقادم هنا.

81
00:07:26,660 --> 00:07:31,390
سنتعامل مع «ثم» من النتيجة هنا.

82
00:07:39,650 --> 00:07:48,690
إرجاع dbclose وكل

83
00:07:48,690 --> 00:07:56,785
هذه هنا يمكن إزالتها الآن لأنها لم تعد هناك حاجة إليها.

84
00:07:56,785 --> 00:08:04,520
ثم أخيرا إذا كان هناك خطأ سوف قبض على الخطأ هذه الوظيفة.

85
00:08:04,520 --> 00:08:12,930
لذلك أنا فقط ذاهب لنسخ هذا ومن ثم لصقه هنا. هذا هو

86
00:08:12,930 --> 00:08:14,755
مع هذا التغيير الآن،

87
00:08:14,755 --> 00:08:20,220
يكون التعامل مع شفرتك أسهل بكثير هنا.

88
00:08:20,220 --> 00:08:21,510
حتى كما ترون،

89
00:08:21,510 --> 00:08:24,560
لديك mongoClient.Connect الذي

90
00:08:24,560 --> 00:08:28,040
يعود وعد وداخل التعامل مع هذا الوعد،

91
00:08:28,040 --> 00:08:31,700
انهم استدعاء هذه الأساليب واحدا تلو الآخر

92
00:08:31,700 --> 00:08:35,490
كل منهم يعود الوعد ثم كنت تسلسل لهم باستخدام.

93
00:08:35,490 --> 00:08:41,635
هذا الهيكل وتر هو أسهل بكثير لمتابعة من ما كنا قد نفذناه في وقت سابق.

94
00:08:41,635 --> 00:08:46,280
لذا باستخدام الوعود قمنا بتحويله حرفيًا ثم تجنبنا

95
00:08:46,280 --> 00:08:51,250
جحيم رد الاتصال الذي رأيناه في الإصدار السابق من هذا التطبيق.

96
00:08:51,250 --> 00:08:53,590
لذلك دعونا حفظ التغييرات على كل من

97
00:08:53,590 --> 00:08:58,715
index.jsn.operation.js ثم نلقي نظرة على هذا التطبيق.

98
00:08:58,715 --> 00:09:00,840
مرة أخرى الذهاب إلى المحطة،

99
00:09:00,840 --> 00:09:03,105
في نوع موجه «نبم

100
00:09:03,105 --> 00:09:09,515
ستارت» وسوف ترى أن التطبيق الخاص بك يعمل تماما كما كان من قبل

101
00:09:09,515 --> 00:09:12,200
، فإنه يدرج المستند، يجد

102
00:09:12,200 --> 00:09:15,080
المستند،

103
00:09:15,080 --> 00:09:18,530
تحديث المستند ثم يجد المستند المحدث ثم يغلق قاعدة بيانات الفعل.

104
00:09:18,530 --> 00:09:23,630
لذلك باستخدام الوعود قمنا بإعادة هيكلة التعليمات البرمجية لتكون أكثر سهولة

105
00:09:23,630 --> 00:09:29,945
وتجنب الجحيم رد الذي رأيناه في الإصدار السابق من هذا التطبيق.

106
00:09:29,945 --> 00:09:33,705
مع هذا، نكمل هذا التمرين.

107
00:09:33,705 --> 00:09:36,470
في هذا التمرين، رأيت كيف يمكننا الاستفادة

108
00:09:36,470 --> 00:09:39,590
من الوعود لتجنب الجحيم رد.

109
00:09:39,590 --> 00:09:42,920
هذا هو الوقت المناسب بالنسبة لك للقيام جيت الالتزام مع

110
00:09:42,920 --> 00:09:47,950
الجحيم رد الرسالة والوعد.