/** * Rule: no-promise-in-callback * Discourage using promises inside of callbacks. */'use strict'constgetDocsUrl=require('./lib/get-docs-url')constisPromise=require('./lib/is-promise')constisInsideCallback=require('./lib/is-inside-callback')module.exports={meta:{docs:{url:getDocsUrl('no-promise-in-callback')}},create(context){return{CallExpression(node){if(!isPromise(node))return// if i'm returning the promise, it's probably not really a callback// function, and I should be okay....if(node.parent.type==='ReturnStatement')return// what about if the parent is an ArrowFunctionExpression// would that imply an implicit return?if(context.getAncestors().some(isInsideCallback)){context.report({node:node.callee,message:'Avoid using promises inside of callbacks.'})}}}}}