请原谅我问这样一个初学者级别的问题,因为我对标题相同的问题不满意。基本上,在执行一些也会返回promise的包函数之后,我需要为函数提供promise返回类型。
myquest.js
module.exports = somefunction = (data){
//performs some processing with data
somePackagePromiseFunc() //return type promise
.then((data) => {
console.log(data);
return new Promise.resolve(data);
}).catch( (err) => {
console.log(err);
return new Promise.reject(err);
});
}
mymain.js
var somefunction = require('myquest');
somefunction(data).then((data) => {
console.log('job done with data ' + data);
}).catch(() => {
console.log('we messed with error: ' + err);
})
帮助我理解我的错误。
答案 0 :(得分:4)
最简单的代码修补程序是
submitButtonTapped
是一个函数吗?然后叫它您最终会得到
ViewController
注意一些代码:
somePackagePromiseFunc
Promise.resolve不是构造函数,因此将module.exports = function (data) {
//performs some processing with data
return somePackagePromiseFunc().then((data) => {
console.log(data);
return data;
}).catch( (err) => {
console.log(err);
throw err;
});
}
删除即可
return new Promise.resolve(data);
但是,您位于.then内,返回的Promise都会解析.then中返回的值-因此,根本不需要将其包装在Promise.resolve中-因此,这就是为什么您只需要< / p>
new
与.catch类似,除了返回拒绝的承诺外,您return Promise.resolve(data);
代替return data;
-尽管从技术上讲您可以
throw
注意,没有“新”内容,因为它也不是构造函数