Sails.js从Model.getDatastore().sendNativeQuery()进行多次回调

Sails.js从Model.getDatastore().sendNativeQuery()进行多次回调,sails.js,Sails.js,将Sails.js升级到v1.0本机SQL查询模型后,getDatastore().sendNativeQuery()会多次触发回调,因此异步UTIL会导致错误(无论如何,这并不好)。以下是控制台跟踪: WARNING: Something seems to be wrong with this function. It is trying to signal that it has finished AGAIN, after already resolving/rejecting once.

将Sails.js升级到v1.0本机SQL查询模型后,getDatastore().sendNativeQuery()会多次触发回调,因此异步UTIL会导致错误(无论如何,这并不好)。以下是控制台跟踪:

WARNING: Something seems to be wrong with this function.
It is trying to signal that it has finished AGAIN, after
already resolving/rejecting once.
(silently ignoring this...)

To assist you in hunting this down, here is a stack trace:
```
    at Object.releaseConnection (C:\Users\asder\projects\warehouse\node_modules\sails-mysql\helpers\private\connection\release-connection.js:27:9)
    at parentQueryCb (C:\Users\asder\projects\warehouse\node_modules\sails-mysql\helpers\join.js:228:30)
    at Object.success (C:\Users\asder\projects\warehouse\node_modules\sails-mysql\helpers\private\query\run-native-query.js:64:14)
    at C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:1517:30
    at proceedToFinalAfterExecLC (C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:1155:14)
    at proceedToInterceptsAndChecks (C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:913:12)
    at proceedToAfterExecSpinlocks (C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:845:10)
    at C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:303:7
    at C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:954:24
    at Function.handlerCbs.success (C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:814:26)
    at Query.query [as _callback] (C:\Users\asder\projects\warehouse\node_modules\machinepack-mysql\lib\send-native-query.js:320:20)
    at Query.Sequence.end (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\sequences\Sequence.js:88:24)
    at Query._handleFinalResultPacket (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\sequences\Query.js:139:8)
    at Query.EofPacket (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\sequences\Query.js:123:8)
    at Protocol._parsePacket (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\Protocol.js:279:23)
    at Parser.write (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\Parser.js:76:12)
    at Protocol.write (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\Protocol.js:39:16)
    at Socket.<anonymous> (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\Connection.js:103:28)
    at Socket.emit (events.js:314:20)
    at addChunk (_stream_readable.js:298:12)
    at readableAddChunk (_stream_readable.js:273:9)
    at Socket.Readable.push (_stream_readable.js:214:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
```
Here is the original error:
```
undefined```
警告:此函数似乎有问题。
它试图发出信号,表示它已经完成了一次又一次
已解决/拒绝一次。
(默默地忽略这个…)
为了帮助您找到这些,这里有一个堆栈跟踪:
```
在Object.releaseConnection(C:\Users\asder\projects\warehouse\node\u modules\sails mysql\helpers\private\connection\release connection.js:27:9)
在parentQueryCb(C:\Users\asder\projects\warehouse\node\u modules\sails mysql\helpers\join.js:228:30)
在Object.success(C:\Users\asder\projects\warehouse\node\u modules\sails mysql\helpers\private\query\run native query.js:64:14)
在C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:1517:30
在proceedToFinalAfterExecLC(C:\Users\asder\projects\warehouse\node\u modules\parley\lib\private\Deferred.js:1155:14)
在proceedToInterceptsAndChecks(C:\Users\asder\projects\warehouse\node\u modules\parley\lib\private\Deferred.js:913:12)
在proceedToAfterExecSpinlocks(C:\Users\asder\projects\warehouse\node\u modules\parley\lib\private\Deferred.js:845:10)
在C:\Users\asder\projects\warehouse\node\u modules\parley\lib\private\Deferred.js:303:7
在C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:954:24
位于Function.handlerCbs.success(C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:814:26)
在Query.Query[as\u callback](C:\Users\asder\projects\warehouse\node\u modules\machinepack mysql\lib\send native Query.js:320:20)
在Query.Sequence.end(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\protocol\sequences\Sequence.js:88:24)
在查询时。\u handleFinalResultPacket(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\protocol\sequences\Query.js:139:8)
在Query.EofPacket(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\protocol\sequences\Query.js:123:8)
at Protocol.\u parsePacket(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\Protocol\Protocol.js:279:23)
在Parser.write(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\protocol\Parser.js:76:12)
在Protocol.write(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\Protocol\Protocol.js:39:16)
在插座上。(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\Connection.js:103:28)
在Socket.emit(events.js:314:20)
在addChunk(_stream_readable.js:298:12)
在readableAddChunk(_stream_readable.js:273:9)
在Socket.Readable.push(_stream_Readable.js:214:10)
在TCP.onStreamRead(内部/stream_base_commons.js:188:23)
```
以下是原始错误:
```
未定义```
因此,接下来我在异步utils中得到一个错误,即多次调用了“next”回调:

app.js 'handleErrors' error: Error: Callback was already called.
    at C:\Users\asder\projects\warehouse\node_modules\async\dist\async.js:318:36
    at C:\Users\asder\projects\warehouse\api\controllers\ManagerController.js:461:44
    at C:\Users\asder\projects\warehouse\api\services\TransferUtils.js:14:24
    at afterwards (C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\help-send-native-query.js:112:23)
    at C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\private\do-with-connection.js:195:18
    at C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:952:35
    at Function.handlerCbs.error (C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:742:26)
    at parley.retry (C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:1088:49)
    at parley (C:\Users\asder\projects\warehouse\node_modules\parley\lib\parley.js:140:5)
    at Object.runFn [as releaseConnection] (C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:461:23)
    at C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\private\do-with-connection.js:193:22
    at C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\private\do-with-connection.js:113:18
    at Object.success (C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\help-send-native-query.js:106:18)
    at C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:1517:30
    at proceedToFinalAfterExecLC (C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:1155:14)
    at proceedToInterceptsAndChecks (C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:913:12)
    at proceedToAfterExecSpinlocks (C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:845:10)
    at C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:303:7
    at C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:954:24
    at Function.handlerCbs.success (C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:814:26)
    at Query.query [as _callback] (C:\Users\asder\projects\warehouse\node_modules\machinepack-mysql\lib\send-native-query.js:320:20)
    at Query.Sequence.end (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\sequences\Sequence.js:88:24)
    at Query._handleFinalResultPacket (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\sequences\Query.js:139:8)
    at Query.EofPacket (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\sequences\Query.js:123:8)
    at Protocol._parsePacket (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\Protocol.js:279:23)
    at Parser.write (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\Parser.js:76:12)
    at Protocol.write (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\Protocol.js:39:16)
    at Socket.<anonymous> (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\Connection.js:103:28)
app.js 'handleErrors' error: Error: Callback was already called.
    at C:\Users\asder\projects\warehouse\node_modules\async\dist\async.js:318:36
    at C:\Users\asder\projects\warehouse\api\controllers\ManagerController.js:461:44
    at C:\Users\asder\projects\warehouse\api\services\TransferUtils.js:14:24
    at afterwards (C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\help-send-native-query.js:112:23)
    at C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\private\do-with-connection.js:195:18
    at C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:952:35
    at Function.handlerCbs.error (C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:742:26)
    at parley.retry (C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:1088:49)
    at parley (C:\Users\asder\projects\warehouse\node_modules\parley\lib\parley.js:140:5)
    at Object.runFn [as releaseConnection] (C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:461:23)
    at C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\private\do-with-connection.js:193:22
    at C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\private\do-with-connection.js:113:18
    at Object.success (C:\Users\asder\projects\warehouse\node_modules\sails-hook-orm\lib\datastore-method-utils\help-send-native-query.js:106:18)
    at C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:1517:30
    at proceedToFinalAfterExecLC (C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:1155:14)
    at proceedToInterceptsAndChecks (C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:913:12)
    at proceedToAfterExecSpinlocks (C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:845:10)
    at C:\Users\asder\projects\warehouse\node_modules\parley\lib\private\Deferred.js:303:7
    at C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:954:24
    at Function.handlerCbs.success (C:\Users\asder\projects\warehouse\node_modules\machine\lib\private\help-build-machine.js:814:26)
    at Query.query [as _callback] (C:\Users\asder\projects\warehouse\node_modules\machinepack-mysql\lib\send-native-query.js:320:20)
    at Query.Sequence.end (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\sequences\Sequence.js:88:24)
    at Query._handleFinalResultPacket (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\sequences\Query.js:139:8)
    at Query.EofPacket (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\sequences\Query.js:123:8)
    at Protocol._parsePacket (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\Protocol.js:279:23)
    at Parser.write (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\Parser.js:76:12)
    at Protocol.write (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\protocol\Protocol.js:39:16)
    at Socket.<anonymous> (C:\Users\asder\projects\warehouse\node_modules\mysql\lib\Connection.js:103:28)
app.js'handleErrors'错误:错误:已调用回调。
在C:\Users\asder\projects\warehouse\node\u modules\async\dist\async.js:318:36
在C:\Users\asder\projects\warehouse\api\controllers\ManagerController.js:461:44
在C:\Users\asder\projects\warehouse\api\services\TransferUtils.js:14:24
之后(C:\Users\asder\projects\warehouse\node\u modules\sails hook orm\lib\datastore method utils\help send native query.js:112:23)
在C:\Users\asder\projects\warehouse\node\u modules\sails hook orm\lib\datastore method utils\private\do with connection.js:195:18
在C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:952:35
位于Function.handlerCbs.error(C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:742:26)
在parley.retry(C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:1088:49)
在parley(C:\Users\asder\projects\warehouse\node\u modules\parley\lib\parley.js:140:5)
在Object.runFn[作为发布连接](C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:461:23)
在C:\Users\asder\projects\warehouse\node\u modules\sails hook orm\lib\datastore method utils\private\do with connection.js:193:22
在C:\Users\asder\projects\warehouse\node\u modules\sails hook orm\lib\datastore method utils\private\do with connection.js:113:18
在Object.success(C:\Users\asder\projects\warehouse\node\u modules\sails hook orm\lib\datastore method utils\help send native query.js:106:18)
在C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:1517:30
在proceedToFinalAfterExecLC(C:\Users\asder\projects\warehouse\node\u modules\parley\lib\private\Deferred.js:1155:14)
在proceedToInterceptsAndChecks(C:\Users\asder\projects\warehouse\node\u modules\parley\lib\private\Deferred.js:913:12)
在proceedToAfterExecSpinlocks(C:\Users\asder\projects\warehouse\node\u modules\parley\lib\private\Deferred.js:845:10)
在C:\Users\asder\projects\warehouse\node\u modules\parley\lib\private\Deferred.js:303:7
在C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:954:24
位于Function.handlerCbs.success(C:\Users\asder\projects\warehouse\node\u modules\machine\lib\private\help build machine.js:814:26)
在Query.Query[as\u callback](C:\Users\asder\projects\warehouse\node\u modules\machinepack mysql\lib\send native Query.js:320:20)
在Query.Sequence.end(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\protocol\sequences\Sequence.js:88:24)
在查询时。\u handleFinalResultPacket(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\protocol\sequences\Query.js:139:8)
在Query.EofPacket(C:\Users\asder\projects\warehouse\node\u modules\mysql\lib\protocol\sequences\Query.js:123:8)
at协议。解析数据包(C:\Users\asder\projects\warehouse\node\u模块