[英]Strange behaviour in javascript Promise
考虑以下代码片段,
function one(){
var prm = new Promise(function(resolve,reject){
});
prm.customKey = function(){
}
return prm;
}
function two(){
return one().then(function(){
//something
});
}
现在调用函数二,返回一个缺少“ customKey”的promise
function three(){
return one();
}
但是,当在函数三中执行相同的操作时(不使用“ then”处理成功),将返回其中包含“ customKey”的promise。
有人可以澄清我的真实情况,为什么吗?
从“ Mozilla文档”中可以看到, then
方法将返回新的Promise
(例如: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then )。
如果要分配一个函数来检索/在resolve函数中执行某些操作,请按以下步骤进行操作:
var prm = new Promise((resolve, reject) => {
let customKeyFunction = () => {
console.log("I'm custom key function.");
};
resolve(customKeyFunction);
})
从现在开始,您可以像下面这样调用此函数:
function two() {
return one().then(customKey => {
customKey();
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.