javascript - Videregivelse af argumenter til promises. Skal jeg bryde kæden?


Jeg er ny til Node.js og promises. Jeg har et krav om at sende argumenter ind i en callback-funktion i min promise-kæde. Ser ud som nedenfor:

var first = function(something) {
/* do something */
return something.toString();
}
var second = function(something, item) {
/* need to work with both the args */
}

Og min løfte-kæde ser ud som

function(item) {
    /* the contents come from first callback and the item should be passed as an argument to the second callback */
    fs.readFile(somefile).then(first).then(second)
}

Jeg burde videregive varen som en parameter, kan jeg gøre dette uden at bryde min kæde?

Ret mig venligst, hvis jeg tager helt fejl.

Tak

Svar #1

Pak din second-funktion ind i en anonym funktion og send parameteren på denne måde:

function(item) {
    /* the contents come from first callback and the item should be passed as an argument to the second callback */
    fs.readFile(somefile)
        .then(first)
        .then(firstResult => second(firstResult, item))
}

Svar #2

Du kan bruge Function.prototype.bind() til at sende varen til den anden funktion

 fs.readFile(somefile).then(first)
.then(second.bind(null, item))

Relaterede artikler