Chain To Then 功能,同时在 ES6 中封装一个
Chain To Then Function While Encapsulating One in ES6
我是 ecmaScript6 的新学员。
我需要在封装库函数时链接到 "then" promises。
Swal 是 sweetAlert2 函数,用于提出问题并获得用户的响应,yes/no。
这是我正在尝试做的事情;
class MyLib {
constructor() {
}
static askQuestion(title, message){
Swal.fire({
title: title,
text: message,
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
return result;
})
}
}
然后像这样调用这个函数;
MyLib.askQuestion("Are you sure?", "Are you sure you want to delete this ?").then(alert(result));
但是当然;由于警报(结果),在运行时控制台上给我“.askQuestion(...)未定义”。
如何在 es6 中链接两个然后函数?
您需要return您的承诺:
class MyLib {
constructor() {
}
static askQuestion(title, message){
return Swal.fire({
title: title,
text: message,
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
});
}
}
而且,正如其他人所说,您的 .then(result => {return result;})
毫无意义,因此可以将其删除。
然后,当你使用它时,你必须传递一个函数 reference 给 .then()
所以改变这个:
MyLib.askQuestion("Are you sure?", "Are you sure ...").then(alert(result));
对此:
MyLib.askQuestion("Are you sure?", "Are you sure ...").then((result) => alert(result));
或者这个:
MyLib.askQuestion("Are you sure?", "Are you sure ...").then(alert);
而且,如果 Swal.fire()
可以拒绝它的承诺,你也需要一个 .catch()
。
我是 ecmaScript6 的新学员。
我需要在封装库函数时链接到 "then" promises。
Swal 是 sweetAlert2 函数,用于提出问题并获得用户的响应,yes/no。
这是我正在尝试做的事情;
class MyLib {
constructor() {
}
static askQuestion(title, message){
Swal.fire({
title: title,
text: message,
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
return result;
})
}
}
然后像这样调用这个函数;
MyLib.askQuestion("Are you sure?", "Are you sure you want to delete this ?").then(alert(result));
但是当然;由于警报(结果),在运行时控制台上给我“.askQuestion(...)未定义”。
如何在 es6 中链接两个然后函数?
您需要return您的承诺:
class MyLib {
constructor() {
}
static askQuestion(title, message){
return Swal.fire({
title: title,
text: message,
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
});
}
}
而且,正如其他人所说,您的 .then(result => {return result;})
毫无意义,因此可以将其删除。
然后,当你使用它时,你必须传递一个函数 reference 给 .then()
所以改变这个:
MyLib.askQuestion("Are you sure?", "Are you sure ...").then(alert(result));
对此:
MyLib.askQuestion("Are you sure?", "Are you sure ...").then((result) => alert(result));
或者这个:
MyLib.askQuestion("Are you sure?", "Are you sure ...").then(alert);
而且,如果 Swal.fire()
可以拒绝它的承诺,你也需要一个 .catch()
。