Create method chain before object exists
Let's say I'm using knex to run queries against an SQL database. I chain a few methods to build the query.
For example:
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex.select("*")
.from("books")
.where("author", "=", "José Saramago")
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(() => {
knex.destroy();
})
Now, my question is:
Is there a way to store the method chain before the knex
object is created and call it later when it is created?
Something like this:
const methodChain = <<<
.select("*"),
.from("books"),
.where("author", "=", "José Saramago")
>>>
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex
.methodChain()
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
javascript method-chaining
add a comment |
Let's say I'm using knex to run queries against an SQL database. I chain a few methods to build the query.
For example:
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex.select("*")
.from("books")
.where("author", "=", "José Saramago")
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(() => {
knex.destroy();
})
Now, my question is:
Is there a way to store the method chain before the knex
object is created and call it later when it is created?
Something like this:
const methodChain = <<<
.select("*"),
.from("books"),
.where("author", "=", "José Saramago")
>>>
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex
.methodChain()
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
javascript method-chaining
add a comment |
Let's say I'm using knex to run queries against an SQL database. I chain a few methods to build the query.
For example:
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex.select("*")
.from("books")
.where("author", "=", "José Saramago")
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(() => {
knex.destroy();
})
Now, my question is:
Is there a way to store the method chain before the knex
object is created and call it later when it is created?
Something like this:
const methodChain = <<<
.select("*"),
.from("books"),
.where("author", "=", "José Saramago")
>>>
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex
.methodChain()
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
javascript method-chaining
Let's say I'm using knex to run queries against an SQL database. I chain a few methods to build the query.
For example:
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex.select("*")
.from("books")
.where("author", "=", "José Saramago")
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(() => {
knex.destroy();
})
Now, my question is:
Is there a way to store the method chain before the knex
object is created and call it later when it is created?
Something like this:
const methodChain = <<<
.select("*"),
.from("books"),
.where("author", "=", "José Saramago")
>>>
const sqlConfig = require('./sql.config');
var knex = require('knex')(sqlConfig);
knex
.methodChain()
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
javascript method-chaining
javascript method-chaining
asked Nov 14 '18 at 18:52
Edgar Ramírez MondragónEdgar Ramírez Mondragón
1,5512821
1,5512821
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
You could create a function that accepts the initial parameter in the chain:
function methodChain(in) {
return in.select("*")
.from("books")
.where("author", "=", "José Saramago");
}
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
This worked by removing those commas insidemethodChain
. I'm sure you copied from my question, my bad. Thanks!
– Edgar Ramírez Mondragón
Nov 14 '18 at 18:59
@EdgarR.Mondragón You’re right, I missed that! Glad it works for you, and I’ve removed the extraneous commas now.
– MTCoster
Nov 14 '18 at 19:01
add a comment |
Sure.
const methodChain = (x) => x
.select("*"),
.from("books"),
.where("author", "=", "José Saramago");
then later
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53306953%2fcreate-method-chain-before-object-exists%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You could create a function that accepts the initial parameter in the chain:
function methodChain(in) {
return in.select("*")
.from("books")
.where("author", "=", "José Saramago");
}
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
This worked by removing those commas insidemethodChain
. I'm sure you copied from my question, my bad. Thanks!
– Edgar Ramírez Mondragón
Nov 14 '18 at 18:59
@EdgarR.Mondragón You’re right, I missed that! Glad it works for you, and I’ve removed the extraneous commas now.
– MTCoster
Nov 14 '18 at 19:01
add a comment |
You could create a function that accepts the initial parameter in the chain:
function methodChain(in) {
return in.select("*")
.from("books")
.where("author", "=", "José Saramago");
}
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
This worked by removing those commas insidemethodChain
. I'm sure you copied from my question, my bad. Thanks!
– Edgar Ramírez Mondragón
Nov 14 '18 at 18:59
@EdgarR.Mondragón You’re right, I missed that! Glad it works for you, and I’ve removed the extraneous commas now.
– MTCoster
Nov 14 '18 at 19:01
add a comment |
You could create a function that accepts the initial parameter in the chain:
function methodChain(in) {
return in.select("*")
.from("books")
.where("author", "=", "José Saramago");
}
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
You could create a function that accepts the initial parameter in the chain:
function methodChain(in) {
return in.select("*")
.from("books")
.where("author", "=", "José Saramago");
}
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
edited Nov 14 '18 at 19:01
answered Nov 14 '18 at 18:55
MTCosterMTCoster
3,80922141
3,80922141
This worked by removing those commas insidemethodChain
. I'm sure you copied from my question, my bad. Thanks!
– Edgar Ramírez Mondragón
Nov 14 '18 at 18:59
@EdgarR.Mondragón You’re right, I missed that! Glad it works for you, and I’ve removed the extraneous commas now.
– MTCoster
Nov 14 '18 at 19:01
add a comment |
This worked by removing those commas insidemethodChain
. I'm sure you copied from my question, my bad. Thanks!
– Edgar Ramírez Mondragón
Nov 14 '18 at 18:59
@EdgarR.Mondragón You’re right, I missed that! Glad it works for you, and I’ve removed the extraneous commas now.
– MTCoster
Nov 14 '18 at 19:01
This worked by removing those commas inside
methodChain
. I'm sure you copied from my question, my bad. Thanks!– Edgar Ramírez Mondragón
Nov 14 '18 at 18:59
This worked by removing those commas inside
methodChain
. I'm sure you copied from my question, my bad. Thanks!– Edgar Ramírez Mondragón
Nov 14 '18 at 18:59
@EdgarR.Mondragón You’re right, I missed that! Glad it works for you, and I’ve removed the extraneous commas now.
– MTCoster
Nov 14 '18 at 19:01
@EdgarR.Mondragón You’re right, I missed that! Glad it works for you, and I’ve removed the extraneous commas now.
– MTCoster
Nov 14 '18 at 19:01
add a comment |
Sure.
const methodChain = (x) => x
.select("*"),
.from("books"),
.where("author", "=", "José Saramago");
then later
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
add a comment |
Sure.
const methodChain = (x) => x
.select("*"),
.from("books"),
.where("author", "=", "José Saramago");
then later
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
add a comment |
Sure.
const methodChain = (x) => x
.select("*"),
.from("books"),
.where("author", "=", "José Saramago");
then later
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
Sure.
const methodChain = (x) => x
.select("*"),
.from("books"),
.where("author", "=", "José Saramago");
then later
methodChain(knex)
.then((rows) => {
console.log(rows);
})
.catch((err) => {
console.log(err);
})
.finally(function() {
knex.destroy();
})
answered Nov 14 '18 at 18:55
Mike SamuelMike Samuel
93.5k23171214
93.5k23171214
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53306953%2fcreate-method-chain-before-object-exists%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown