簡體   English   中英

如何在Node.js中使用promise編寫帶有參數的函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM