[英]How to write a function with arguments using promises in Node.js?
假設我具有以下功能:
Person.find({ surname: "Doe" }).only("name", "surname").run(function (err, people) {
});
這是我使用諾言嘗試過的:
Q.nfcall(Person.find.only('name', 'surname').run, {surname: 'Doe'});
我應該在哪里使用promises為only()
函數插入參數?
謝謝
首先,如果您使用的是Node.js 0.12+或io.js,則無需使用Q或其他庫來支持Promise,因為它們是本機可用的。
其次,似乎您使用的是Mongoose,它本身支持諾言: http : //mongoosejs.com/docs/harmony.html
當您調用Model.find()時,它已經返回了一個Promise,因此您可以執行以下操作:
var promise = Person.find({ surname: "Doe" }).only("name", "surname")
promise.then(...)
對於這些參數only
應該去的地方,他們總是去了,只是還有那些find
。 您只想run
帶有回調的電話並獲得承諾:
Q.nfcall(Person.find({ surname: "Doe" }).only("name", "surname").run)
.then(function(people){…}, function(err) {…});
但是可能無論如何您都必須使用Q.ninvoke
:
Q.ninvoke(Person.find({ surname: "Doe" }).only("name", "surname"), "run")
.then(function(people){…}, function(err) {…});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.