从 when.js 迁移到 ES6 Promises
Moving from when.js to ES6 Promises
我一直在使用 when.js 作为 node.js 中的承诺。我有如下功能:
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 Promises 做同样的事情?
结构非常相似:
function my_func() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
if (error) {
reject('no');
}
resolve('yes')
}, 1000);
});
}
您的原始函数在 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);
});
}
中有很好的介绍
//Creating promise
function my_func() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
//...
if(error) {
reject(Error("Error Message"));
}
resolve("Success message")
}, 1000)
});
}
//Using it
my_func().then(function(response){
console.log("Success!", response);
}, function(err){
console.error("Failed!", err);
})
我一直在使用 when.js 作为 node.js 中的承诺。我有如下功能:
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 Promises 做同样的事情?
结构非常相似:
function my_func() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
if (error) {
reject('no');
}
resolve('yes')
}, 1000);
});
}
您的原始函数在 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);
});
}
中有很好的介绍
//Creating promise
function my_func() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
//...
if(error) {
reject(Error("Error Message"));
}
resolve("Success message")
}, 1000)
});
}
//Using it
my_func().then(function(response){
console.log("Success!", response);
}, function(err){
console.error("Failed!", err);
})