我一直在使用when.js 来实现node.js 中的promise。我有一个如下所示的函数:
function my_func() {
var d = when.defer();
// Async actions simulated with timeout
setTimeout(function() {
//...
if(error) {
return d.resolve(error);
}
d.resolve(result);
}, 1000)
return d.promise;
}
我会这样称呼:
my_func().then(
function(res) {
//...
},
function(err) {
// Handle error
}
);
如何使用 ES6 Promise 做同样的事情?
最佳答案
您的原始函数在 if (error)
条件中存在一些错误,因此这里是更新的代码片段:
function my_func() {
var d = when.defer();
// Async actions simulated with timeout
setTimeout(function() {
//...
if(error) {
d.reject(error);
}
d.resolve(result);
}, 1000)
return d.promise;
}
变成了
function my_func() {
return new Promise(function (resolve, reject) {
//Async actions simulated with timeout
setTimeout(function () {
//...
if (error) {
reject(error);
}
resolve(result);
}, 1000);
});
}
MDN's Promise
documentation 中对此进行了相当详细的介绍。
关于javascript - 从 when.js 迁移到 ES6 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36892515/