var someFunc = function() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(37);
}, 1000);
});
};
var f1 = function() {
return someFunc()
.then(val => {
return val + 1;
});
}
var f2 = function() {
return new Promise(resolve => {
someFunc()
.then(val => {
resolve(val + 1);
});
});
}
var f3 = function() {
someFunc().then(val => {
return new Promise(resolve => {
resolve(val + 1);
});
});
};
Angular 6
如果绑定变量的值在
then
f1的。
这不起作用:(UI未更新)
public myClickHandler() {
f1().then(val => this.uiBoundVar = val);
}
public myClickHandler() {
f2().then(val => this.uiBoundVar = val);
// This works too
// f3().then(val => this.uiBoundVar = val);
}
From MDN Promise return value
悬而未决的承诺。然后异步调用处理程序函数(onFulfilled或onRejected)(只要堆栈为空)。调用处理程序函数后,如果处理程序函数:
返回一个值,则返回的promise将以返回值作为其值进行解析;