我有一个功能:
function foo(aString, function(err, callback) {
//does stuff
}
我需要从一系列Parse.Promises中间调用该函数。
如何将其包装在Parse.Promise中?
我试过了:
//...
return new Parse.Promise(function(resolve, reject) {
foo(thatString, function(err, data) {
if(err) return reject(err);
resolve(data);
});
});
}).then(function(data) {
//...
以及其他变体,例如Parse.Promise.as()
而不是new Parse.Promise()
任何帮助都将不胜感激。
答案 0 :(得分:1)
你走在正确的轨道上,但是Parse的promise构造函数没有采取解析/拒绝功能。相反,让你的包装器构建并返回一个没有params的promise,然后在包装函数的回调中调用promise的resolve()
或reject()
方法,如下所示:
var wrappedFoo = function(aString) {
var promise = new Parse.Promise();
foo(aString, function(err, data) {
if (err) { promise.reject(err); }
promise.resolve(data);
});
return promise;
};
这样称呼:
wrappedFoo("bar").then(function(data) {
// data will be the data passed to the foo callback
}, function(err) {
// likewise for err
});