سيكون من الرائع حقًا أن يعطي شخص ما مثالًا عمليًا لوظيفة الخطاف التي تستخدم نمط ES7 غير المتزامن / انتظار.
يولد المولد كعبًا مثل هذا:
// Use this hook to manipulate incoming or outgoing data.
// For more information on hooks see: http://docs.feathersjs.com/api/hooks.html
module.exports = function (options = {}) { // eslint-disable-line no-unused-vars
return function myHook (hook) {
// Hooks can either return nothing or a promise
// that resolves with the `hook` object for asynchronous operations
return Promise.resolve(hook);
};
};
لم أجد طريقة لإجراء مكالمة منتظرة مثل
response = await request('https://whatever.com')
داخل myHook. أي مساعدة يحظى بتقدير كبير!
عليك فقط أن تجعل return function myHook
متزامن:
// Use this hook to manipulate incoming or outgoing data.
// For more information on hooks see: http://docs.feathersjs.com/api/hooks.html
module.exports = function (options = {}) { // eslint-disable-line no-unused-vars
return async function myHook (hook) {
const body = await request('https://whatever.com');
return hook;
};
};
كنت أفكر هذا الصباح في إضافة بعض الأمثلة بالفعل.
شكرا جزيلا! بعد إزالة خطئي الغبي واستخدام مثالك ، كل شيء يعمل بشكل مثالي! أعتقد أنه من الجيد إضافة مثال إلى المستندات لأن عدم التزامن / انتظار يجعل الشفرة أكثر قابلية للقراءة.
تم قفل هذه المشكلة تلقائيًا نظرًا لعدم وجود أي نشاط حديث بعد إغلاقه. الرجاء فتح مشكلة جديدة مع ارتباط لهذه المشكلة للأخطاء ذات الصلة.
التعليق الأكثر فائدة
كنت أفكر هذا الصباح في إضافة بعض الأمثلة بالفعل.