答案 0 :(得分:1)
因为end
函数未定义,它们是相同的。
loopback datasource juggler中有一段代码:
if (context.end === undefined) {
context.end = callback;
}
您可以在this line
上查看所以它与你使用的那个相同。
答案 1 :(得分:0)
挖了一会儿后:
首先,next()和ctx.end()共享相同的签名。
如果几个观察者绑定到连接器,则会一个接一个地调用它们(按绑定顺序)。
示例-1(咖啡):
connectorName.connector.observe 'after execute', (ctx, next) ->
console.log "hook1", new Date()
wait(3000)
ctx.end null, ctx, ctx.res.body
connectorName.connector.observe 'after execute', (ctx, next) ->
console.log "hook2", new Date()
wait(3000)
next()
示例-2(咖啡):
connectorName.connector.observe 'after execute', (ctx, next) ->
console.log "hook1", new Date()
wait(3000);
next null, ctx, ctx.res.body
connectorName.connector.observe 'after execute', (ctx, next) ->
console.log "hook2", new Date()
wait(3000)
next()
在第一个例子中,永远不会调用第二个钩子。在第二种情况下,它通常被称为。
pgConnector.connector.observe 'after execute', (ctx, next) ->
console.log "hook2", new Date()
wait(3000);
ctx.end(null, ctx.res)
pgConnector.connector.observe 'after execute', (ctx, next) ->
console.log "hook3", new Date()
wait(3000);
next()
与数据库连接器相同。