Мой код выглядит следующим образом: (код node.js)
'use strict';
var Promise = require('bluebird');
function promised()
{
return Promise.resolve();
}
function backgroundJob()
{
return Promise.resolve();
}
function doBackgroundJob()
{
// this is an intentional runaway promise.
backgroundJob()
.catch(function (err)
{
console.log('error', err);
});
}
function test()
{
return promised()
.then(function ()
{
doBackgroundJob();
return null; // without this, bluebird displays the warning
});
}
doBackgroundJob()
выполняет фоновую работу, поэтому ему не нужно возвращать обещание.Но поскольку он создает обещание, когда функция вызывается в then()
, без явного return null
в then()
, bluebird выводит на консоль следующее предупреждение.«Предупреждение: обещание было создано в обработчике, но не было возвращено из него».
Это несколько несправедливо, так как вызывающей стороне не нужно знать, что функция использует обещание.Как я могу позволить bluebird игнорировать предупреждение без return null
в then()
в вызывающем абоненте?
Я не хочу отключать предупреждение, так как оно весьма полезно.