У меня была функция, которая выполняла три разные задачи, которые работали нормально. Для лучшего повторного использования я попытался разделить их на три независимых крючка. Они выглядят так:
module.exports = function(options = {}) {
return function hookFunction(hook) {
//do stuff and set variables
function(hook.params.var){ ... } // only in second and third
hook.params.var = var; // only in first and second
return Promise.resolve(hook);
};
};
Мой файл service.hook содержит это:
module.exports = {
before: {
find: [ firstHook(), secondHook(), thirdHook() ]}}
Теперь кажется, что они работают одновременно, из-за чего третий выдает ошибку, вызванную отсутствием данных из первого и второго. Я хочу, чтобы они бежали один за другим. Как я мог этого добиться?
(Я пробовал использовать .then
в service.hook
, но он выдает TypeError: hookFunction(...).then is not a function
.)
Я прочитал Как запускать синхронные перехватчики на fersjs, но я не Не совсем знаете, где разместить цепочку - в третий крючок, в сервисный крючок или где-то еще?