gpt4 book ai didi

javascript - 如何将回调函数包装在 Parse.Promise 中

转载 作者:行者123 更新时间:2023-12-03 06:33:30 25 4
gpt4 key购买 nike

我有一个功能:

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()

如有任何帮助,我们将不胜感激。

最佳答案

您的方向是正确的,但 Parse 的 Promise 构造函数不采用解析/拒绝函数。相反,让您的包装器构建并返回一个不带参数的 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
});

关于javascript - 如何将回调函数包装在 Parse.Promise 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38339144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com