Я создаю инфраструктуру узлов для своих будущих работ, которые можно легко управлять. Он уже имеет конфигурационный модуль.Bluebird не вызывает then(), даже с ранее работающим кодом
Я написал обработчик ошибок и обновил конфигурацию для использования. С тех пор я не могу использовать метод .then()
, как и раньше. Интересная часть состоит в том, что не работает над версией, над которой она работала до (git checkout
).
Я не знаю, что может быть решением. Вы?
То, что я пытался до сих пор:
- переустановку все node_modules (Globals тоже)
git checkout
к более ранней версии- полностью удалить и заново установить узел и НПМ
- Переустановка все node_modules (снова)
- пить много кофф и ее
- купить много пива, чтобы отправить их на правильные ответы
Я использовал этот простой скрипт для проверки ConfigManager
:
var Config = require('./core/server/config');
// Init the Config method
Config.load().then(function(){
// Write out the 'url'
console.log(Config.get('url'));
}
// Update: and I have to wait for processing or I get `undefined`
console.log(Config.get('url'));
// > undefined
Если я делаю это в режиме реального времени, но не тогда () метод, он работает:
var Config = require('./core/server/config');
// > undefined
Config.load();
// > { _bitField: 0, _fulfillmentHandler0: undefined, _rejectionHandler0: undefined, _promise0: undefined, _receiver0: undefined, _settledValue: undefined, _boundTo: undefined, _traceParent: undefined, _trace: [Error] }
Config.get('url');
// > 'http://127.0.0.1'
Примечание:ConfigManager
имеет много общего с TryGhost/Ghost's module.
'Promise.resolve (self._config)' это правильный способ сделать это. Или, альтернативно, если ваша функция всегда возвращает обещание, вы можете использовать 'Promise.method' для ее обертывания, а затем просто' return self._config' –
@BenjaminGruenbaum благодарит за это. :) Я только начинаю понимать эти модули (и мне очень нужно работать с очень скоро, поэтому я еще не мог зайти слишком глубоко). – balintant